c#基础知识(二)
上一篇 /
下一篇 2014-04-30 15:16:23
/ 个人分类:C#
c#基础知识(二)
String.Format
String.Format是将指定的 String类型的数据中的每个格式项替换为相应对象的值的文本等效项。
(a)string p1 = "Jackie";
string p2 = "Aillo";
Response.Write(String.Format("Hello {0}, I'm {1}", p1, p2));
(b)Response.Write(String.Format("Hello {0}, I'm {1}", "Jackie", "Aillo"));
这二者的效果是一样的。都是将最后面的两项的值分别替换第一项的{0}和{1}。
哈希表(Hashtable)
在.NET Framework中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似key/value的键值对,其中key通常可用来快速查找,同时key是区分大小写;value用于存储对应于key的值。Hashtable中key/value键值对均为object类型,所以Hashtable可以支持任何类型的key/value键值对。
哈希表的简单操作
在哈希表中添加一个key/value键值对:HashtableObject.Add(key,value);
在哈希表中去除某个key/value键值对:HashtableObject.Remove(key);
从哈希表中移除所有元素:HashtableObject.Clear();
判断哈希表是否包含特定键key:HashtableObject.Contains(key);示例:using System;using System.Collections; //使用Hashtable时,必须引入这个命名空间
class hashtable
{
public static void Main()
{
Hashtable ht = new Hashtable(); //创建一个Hashtable实例
ht.Add("E", "e");//添加key/value键值对
ht.Add("A", "a");
ht.Add("C", "c");
ht.Add("B", "b");
string s = (string)ht["A"];
if (ht.Contains("E")) //判断哈希表是否包含特定键,其返回值为true或false
Console.WriteLine("the E key:exist");
ht.Remove("C");//移除一个key/value键值对
Console.WriteLine(ht["A"]);//此处输出a
ht.Clear();//移除所有元素
Console.WriteLine(ht["A"]); //此处将不会有任何输出
Console.ReadKey();
}
}
@忽略转义符
@其实就是取消字符串中的转义作用
(a)输入路径:C:\windows\system32\calc.exe
普通输入为C:\\windows\\system32\\calc.exe,但是你可以前面加个@就不用输入两个\\了,@“C:\windows\system32\calc.exe”
(b)不加@的字符串"\n\002wang" 中\n是换行 \002是八进制,而加了@那就是字符串"\n\002wang"
var关键字
VAR 是3.5新出的一个定义变量的类型,弱化类型的定义,var可以代替任何类型,编译器会根据上下文来判断你到底是想用什么类型, 类似 OBJECT。
必须在定义时初始化,如var result = temp.FirstOrDefault();
Parse解析
如a = int.Parse (Console.ReadLine());
将Console.ReadLine()得出来的字符串转换为整型(int),同理也有long.parse(),datetime.parse()等等。强制类型转换可写成:(int)(Console.ReadLine())
示例:
ResponseXml = XDocument.Parse(responseStr);
功能等同于如:responseXml = getResponseXml(responseStr);
public Xml getResponseXml(string responseStr)
{
Xml responseXml = new Xml(responseStr);
return responseXml;
}
Path.Combine
System.IO.Path.Combine 简单来说,就是合并两个路径字符串。
//Flight.Booking\Flight.Booking.API\SaveOrderBaseInfoRequest\SaveOrderBaseInfoRequest.xml
requestXmlPath = Path.Combine(@"Flight.Booking\Flight.Booking.API\SaveOrderBaseInfoRequest", "SaveOrderBaseInfoRequest.xml")
//D:\study\API.Flight\Demo\bin\Debug\Flight.Booking\Flight.Booking.API\SaveOrderBaseInfoRequest\SaveOrderBaseInfoRequest.xml
string path =Path.Combine(AppDomain.CurrentDomain.BaseDirectory, requestXmlPath) // 获取程序的基目录。
C# System.Guid.NewGuid()
概念
GUID: 即Globally Unique Identifier(全球唯一标识符) 也称作 UUID(Universally Unique IDentifier) 。 GUID是一个通过特定算法产生的二进制长度为128位的数字标识符,用于指示产品的唯一性。GUID 主要用于在拥有多个节点、多台计算机的网络或系统中,分配必须具有唯一性的标识符。
在 Windows 平台上,GUID 广泛应用于微软的产品中,用于标识如如注册表项、类及接口标识、数据库、系统目录等对象。
格式
GUID 的格式为“xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”,其中每个 x 是 0-9 或 a-f 范围内的一个32位十六进制数。例如:6F9619FF-8B86-D011-B42D-00C04FC964FF 即为有效的 GUID 值。
System.Guid.NewGuid().ToString("N"); 32位字符串
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
System.Guid.NewGuid().ToString("D"); 连字符分隔的32位字符串
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
System.Guid.NewGuid().ToString("B"); 在大括号中、由连字符分隔的32位字符串
{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}
System.Guid.NewGuid().ToString("P"); 在圆括号中、由连字符分隔的32位字符串
(xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)
StringBuild 一般用于构建比较长的字符串,想必你这里的1=1应该是用在了Sql的查询语句中.那么看一下以下这些简单的代码.
StringBuild sb = new StringBuild();
sb.Append("select * from talbe1 ")
sb.Append("where 1=1 ")
sb.Append("and col1='a' ")
sb.Append("and col2='2' ")
这里的1=1其实是没意思的(它是永远成立的,可以忽略).但如果没有1=1,你之后的条件将怎么与前面的字符串拼接呢?是用"where"还是用"and"?
所以这里只是将后面的查询条件方便与关键字"and"连接.这样只要在需要后接条件的时候接上一个"and"就可以了.不必考虑什么时候用"where"
c#三层架构
表示层:为用户提供一种交互式操作界面;创建一个Windows应用程序,相当于action层
业务逻辑层:是表示层与数据访问层之间的桥梁,负责数据处理和传递,类库,相当于service层
数据访问层:实现对数据的保存和读取操作,类库,相当于domain
model层:放实体类,相当于javabean,dao层
收藏
举报
TAG: