rad*_*bob 131
C#中的变量分为2组中的1组.值类型或引用类型.喜欢的类型int和DateTime是值类型.相反,您创建的任何类都是引用类型.C#字符串也是引用类型..NET框架中的大多数东西都是引用类型.
有变量名称和它的值.两部分.
变量的名称是您声明的名称.该值是您分配给它的值.
所有变量总是给出一个初始在该点的变量值声明.因此,所有变量都被初始化.
对于值类型,int如果您没有明确地执行此操作,编译器将为它们提供有效值.int的初始化默认为零,DateTime的初始化到DateTime.MinValue默认.
引用类型变量初始化为您提供的对象.如果不这样做,编译器将不会分配对象(即有效值).在这种情况下,值是null- 什么都没有.所以我们说引用被初始化为null.
人类出生了.对象被实例化.婴儿是人的一个实例,一个对象是某个类的实例.
创建类实例的行为称为实例化(Ta-Da!)
MyClass myClassyReference = new MyClass();
Run Code Online (Sandbox Code Playgroud)
在上面,说"......创建一个对象的实例......" 是错误的.
甲引用类型变量的名称和值独立地存在.我的意思是独立.
一个实例化的对象可以或可以不具有它的一个引用.
一个实例化对象可能有它的许多参考.
甲声明参考可以或可以不被指向的对象.
And*_*are 40
甲变量被初始化为一个值.一个对象时内存分配给它被实例化,它的构造函数被运行.
例如,这是一个变量:
Dim obj as Object
Run Code Online (Sandbox Code Playgroud)
此变量尚未初始化.一旦我为obj变量赋值,变量就会被初始化.以下是初始化的示例:
obj = 1
obj = "foo"
Run Code Online (Sandbox Code Playgroud)
实例化是一个非常不同的事情但是相关,因为实例化通常后面是初始化:
Dim obj As New Object()
Run Code Online (Sandbox Code Playgroud)
在代码的前面的行中,obj变量被初始化与参照新Object这是实例化.我们说新的Object实例化是因为我们已经创建了它的新实例.
现在我相信VB.NET比C#更令人困惑,因为上面的代码中正在进行赋值并不清楚.在C#中,更清楚的是,实例的实例化和变量的初始化:
Object obj = new Object();
Run Code Online (Sandbox Code Playgroud)
Rob*_*ney 14
要初始化的东西就是把它设置为初始值.要实例化的东西是创建它的一个实例.
通常这或多或少是相同的.这个:
SqlConnection conn = new SqlConnection();
Run Code Online (Sandbox Code Playgroud)
实例化一个SqlConnection对象,并通过将其设置为该实例来初始化该conn变量.
由于对象的构造函数还将对象的属性设置为其默认值,因此实例化对象初始化它通常是正确的.(误导性,如果对象公开了一个方法,你必须明确地调用它在实例化之后初始化它,有时就是这种情况.)
| 归档时间: |
|
| 查看次数: |
74230 次 |
| 最近记录: |