摘要:
假设有以下两个类型 类A和结构B,它们包含的成员一样,都有一个属性X,也都有一个改变X属性的方法,参数为结构或类本身的实例。方法都将X的值改为2,更改之后,X的值将会是? 代码如下: 1 /// <summary> 2 /// 创建一个类A 3 /// </summary> 4 public cla 阅读全文
摘要:
定义一个与包含的类同名的方法,但该方法没有返回类型。 例如: 1 public class User 2 { 3 public string Id { get; set; } 4 public string Name { get; set; } 5 // 没必要指定只带有一个空的构造函数,因为编译器 阅读全文
摘要:
在C#中,方法的定义包括任意方法修饰符(如方法的可访问性)、返回值的类型,然后依次是方法名、输入参数的列表。 方法的返回值必须与方法定义时的类型一致。 例如以下一个判断输入的参数是否是偶数的方法: 1 /// <summary> 2 /// 判断一个数是否是偶数 3 /// </summary> 4 阅读全文
摘要:
首先接收var关键字,它用于表示隐式类型化的变量。 var与new关键字一起使用时,可以创建匿名类型。 匿名类型只是一个继承自Object类且没有名称的类。该类的定义从初始化器中推断,类似于隐式类型化的变量。 创建匿名类: 1 var user = new 2 { 3 Name = "小明", 4 阅读全文
摘要:
属性(property)是一个方法或一对方法,在客户端代码看来,它(们)是一个字段。 例如: public class User { // 将用户的名称字段设置为_开头且小写形式命名的私有字段。 private string _name; // Name属性包含get和set访问器,来检查和设置支持 阅读全文
摘要:
为了保证对象的字段不嫩改变。 使用readonly修饰符声明。 只能在构造函数中分配值。 可以是类的成员,需要把static修饰符分配给该字段。 例如: 1 /// <summary> 2 /// 获取Web.config配置文件,例如数据库连接字符串等 3 /// 只需要在应用程序启动时获取一次就 阅读全文
摘要:
类包含成员,成员可以使静态成员或实例成员。 静态成员属于类,实例成员属于对象(类的实例化,使用类创建一个对象)。 类和对象的表示,例如: 1 // 类 2 // 创建一个表示用户的类 3 public class User 4 { 5 public string Name { get; set; } 阅读全文
摘要:
类和结构都是创建对象的模板,都是用new关键字来声明实例。 类:关键字class,是引用类型,总是存储在堆(heap)上。 结构:关键字struct,是值类型,总是存储在栈(stack)上。较小的数据使用结构可提高性能。 实际开发中使用最多的还是类。 阅读全文
摘要:
数据类型的一些相互转换。 例如: 1 int a = 100; 2 long b = a; // 隐式转换,因为long的长度大于int,所以可以直接将小的赋值给大的 3 4 long x = 1000; 5 int y = x; // 报错,不能直接将x赋值给y。因为x的类型大于y。 6 // 需 阅读全文
摘要:
C#把数据类型分为两种 值类型 引用类型 值类型和引用类型存储在内存的不同地方。 值类型存储在栈(stack)中,直接存储其值。 引用类型存储在托管堆(managed heap)上,存储对值的引用。 例如值类型: 1 // i和j的值会在内存的两个地方被存储 2 int i = 20; 3 int 阅读全文