本文共 10840 字,大约阅读时间需要 36 分钟。
近期开始接触到在校学生、高校实习生和毕业生,在此说一下笔者对这些徘徊在职场门口的学生一些建议,希望能给这些初学者进入软件开发行业带来一些帮助,使得毕业生能更顺利的进入软件开发公司开始职场生涯,人生来一个完美的转弯。[袁永福版权所有]
--------------------------------------------------------------------
Equals | 带一个参数,用于对两个对象数据进行比较,若相等则返回True,否则返回False。 |
Finalize | 在自动回收对象之前执行清理操作,该方法一般由.NET框架自动调用。 |
GetHashCode | 生成一个与对象的值相对应的数字以支持哈希表的使用。 |
ToString | 生成描述对象数据的字符串。一般供人阅读。 |
类型 | 对应的 C#关键字 | 说明 |
System.Boolean | bool | 布尔类型,其值只能为true或false,该数据类型占用1个字节内存。 |
System.Byte | byte | 表示一个从0到255的整数,该数据类型占用1个字节内存。 |
System.SByte | sbyte | 表示一个从-127到127的整数,占用1个字节, |
System.Char | char | 表示一个字符数据,占用2个字节。和C语言类似,Char类型可以强制转换为整数。这个字符数据是采用Unicode编码格式。 |
System.Int16 | short | 表示一个从 -32768 到 +32767 的整数,占用2个字节。 |
System.UInt16 | ushort | 表示一个从0 和 65535的整数,占用2个字节。 |
System.Int32 | int | 表示一个从-2,147,483,648(约负21亿) 到 +2,147,483,647(约21亿)的整数,占用4个字节。 |
System.UInt32 | uint | 表示一个从0 到 4,294,967,295 之间的整数,占用4个字节。 |
System.Int64 | long | 表示一个从-9,223,372,036,854,775,808 到 +9,223,372,036,854,775,807的整数,占有8个字节。 |
System.UInt64 | ulong | 表示一个从0 到 18,446,744,073,709,551,615的整数,占用8个字节。 |
System.Single | float | 表示一个从-3.402823e38 和 +3.402823e38 之间的单精度浮点数字,有7位有效数字。占用4个字节。 |
System.Double | double | 表示一个-1.79769313486232e308 和 +1.79769313486232e308 之间的浮点数,有15位有效数字,占用8个字节。 |
System.Decimal | decimal | 表示一个从+79,228,162,514,264,337,593,543,950,335 到 -79,228,162,514,264,337,593,543,950,335之间的数字。而且计算时尽量不进行舍入操作,这样能维护运算精度,比较适合财务运算。 |
System.DateTime | 无 | 表示一个从公元(基督纪元)0001 年 1 月 1 日午夜 12:00:00 到公元 (C.E.) 9999 年 12 月 31 日晚上 11:59:59 之间的时间日期数据,精确到100纳秒。 在初始化日期数据的时候,可以传递年数、月份数和日数,也可以继续添加24小时制的小时数、分钟数和秒数。 以下代码就定义了一个DateTime类型。 DateTime dtm = new DateTime( 1980 , 2 , 14 ); 也可以为 DateTime dtm2 = new DateTime( 1980 , 2 , 14 , 16, 23 , 39 ); |
System.String | string | 表示一段文本,采用UTF-16编码,可以包含字符“\0”。 |
System.Enum | enum | 所有枚举类型的基础类型。 |
System.Deleate | delegate | 所有委托类型的基础类型。 |
Syatem.Array | 无 | 所有数组类型的基础类型。 |
int[ ] ids = null; // 定义了一个整数数组 string[ ] names = new string[ 100 ]; // 定义了一个字符串数组,并初始化为包含100个数据。 |
string[ ] names = new string[100]; for ( int iCount = 0; iCount < names.Length; iCount++) { string name = names[iCount]; } |
string[ ] names = new string[100]; foreach( string name in names ) { // 此处可以使用变量“name”的值 } |
public struct MyPeopleStruct { public string Code; public string Name; } |
MyPeopleStruct[] peoples = new MyPeopleStruct[100]; peoples[33].Name = "张三"; |
public class MyPeopleClass { public string Code = null; public string Name = null; } |
MyPeopleClass[] peoples = new MyPeopleClass[100]; peoples[3].Name = "张三"; |
public class PeopleClass { public PeopleClass() { } private string _Name = null; public string Name { get { return _Name; } set { _Name = value; } } public override string ToString() { return _Name; } } |
PeopleClass p1 = new PeopleClass(); p1.Name = "张三"; People p2 = p1 ; p2.Name = "李四"; |
public struct PeopleStruct { public string Code; public string Name; public bool Sex; } |
PeopleStruct myPeople = new PeopleStruct( ); myPeople.Code = “1000”; myPeople.Name = “张三”; |
People p1 = new People(); p1.Name = "张三"; People p2 = p1 ; p1.Name = "李四"; |
public enum BarcodeStyle { Code128A, Code128B, Code128C } |
public enum BarcodeStyle { Code128A = 0 , Code128B = 1, Code128C = 2 } |
public enum FlagStyle { Flag1 = 1 , Flag2 = 4, Flag3 = 64 } |
GetName | 获得等于指定数据的枚举项目的名称。该函数是静态的,具有两个参数,第一个是枚举类型,第二个是某个常数。 例如对于上面的BarcodeStyle枚举类型,执行代码“Enum.GetName( typeof( BarcodeStyle ) , 0 ) ”,就返回字符串“Code128A”;执行“Enum.GetName( typeof( BarcodeStyle” , 1 )”就返回字符串“Code128B”。 |
GetNames | 获得枚举类型的所有枚举项目的名称组成的字符串数组。该函数时静态的,参数就是枚举类型变量。 例如对于BarcodeStyle枚举类型,执行代码“Enum.GetNames(typeof( BarcodeStyle ))”就返回一个字符串数组,数组元素是“Code128A”、“Code128B”、“Code128C”。 |
GetValues | 获得枚举类型的所有枚举项目组成的数组。该函数是静态的,参数就是枚举类型变量。 例如对于BarcodeStyle类型,执行代码“Enum.GetValues( typeof( BarocdeStyle ))”就返回一个数组,数组元素就是“BarcodeStyle.Code128A”、“BarcodeStyle.Code128B”、“BarcodeStyle.Code128C”。 |
Parse | 解析字符串并转化为枚举类型,若转化失败则会抛出异常。该函数时静态的,参数是指定的枚举类型和要解析的字符串,此外还有第三个布尔类型的可选参数,用于指明是否区分大小写。 例如对于BarcodeStyle类型,执行代码“Enum.Parse( typeof( BarcodeStyle ) , “Code128A” )”就返回“BarcodeStyle.Code128A”。 执行代码“Enum.Parse( typeof( BarcodeStyle ) , “code128a”, true)”也返回“BarcodeStyle.Code128A”。 注意,当解析失败时,该函数会抛出异常。 |
TryParse | 解析字符串并试图将其转化为枚举类型,如转化失败则不抛出异常,该函数返回转化是否成功的布尔值。该函数是静态的,第一个参数就是要转化的字符串,第二个可选参数就是转化时是否区分大小写,第三个参数就是保存转化结果的枚举变量。 例如对于“BarcodeStyle”,调用代码“Enum.TryParse( “Code128A” , out value )”,则函数返回true而且value值被设置成“BarcodeStyle.Code128A”;调用代码“Enum.TryParse(“abc” , out value )”,则函数返回false,表明转化失败。 |
ToString | 返回表示枚举值的字符串,一般为其所表示的枚举项目的名称。 |
public interface IMyInterface { string Value { get; set; } int Sum( int a , int b ); } |
public class MyClass2 : IMyInterface { private string _Value = null ; public string Value { get { return _Value ; } set { _Value = value ; } } public int Sum(int a, int b) { return a + b ; } } |
public class MyClass2 : IMyInterface { #region IMyInterface 成员 public string Value { get { throw new NotImplementedException(); } set { throw new NotImplementedException(); } } public int Sum(int a, int b) { throw new NotImplementedException(); } #endregion } |
public class MyClass2 : IMyInterface { #region IMyInterface 成员 string IMyInterface.Value { get { throw new NotImplementedException(); } set { throw new NotImplementedException(); } } int IMyInterface.Sum(int a, int b) { throw new NotImplementedException(); } #endregion } |
MyClass2 instance = new MyClass2(); instance.Sum(3, 4); |
IMyInterface instance = new MyClass2(); instance.Sum(3, 4); 或者 MyClass2 instance = new MyClass2(); instance2 = ( IMyInterface )instance; instance2.Sum(3, 4); |
public delegate int Int2Handler( int a , int b ); |
private int Sum(int a, int b) { return a + b; } private int Mul(int a, int b) { return a * b; } private double Sum2(double a, double b) { return a + b; } |
Int2Handler handler = null; handler = new Int2Handler(Sum); int result = handler(3, 4); // 返回7 handler = new Int2Handler(Mul); result = handler(3, 4); // 返回12 |
Int2Handler handler = delegate(int a, int b) { return a + b; }; int result = handler(3, 4); handler = delegate(int a, int b) { return a * b; }; result = handler(3, 4); |
// 没有使用泛型,可以添加任意类型的元素 System.Collections. ArrayList list1 = new System.Collections.ArrayList(); list1.Add( new MyPeopleClass()); list1.Add( new MyPeopleStruct()); // 列表元素必须要强制类型转换 (( MyPeopleClass)list1[0]).Name = "张三 " ; |
// 使用泛型 System.Collections.Generic. List<MyPeopleClass> list2 = new System.Collections.Generic.List<MyPeopleClass>( ); list2.Add( new MyPeopleClass()); //list2.Add(new MyPeopleStruct()); 这样写有编译错误 张三"; |