预定义范例引用范例
C#支持两种预定义的引用范例:object 和string
名称 | .NET范例 | 说明 | object | System.Object | 根范例,其他范例都是从它派生而来的(包括值范例) | string | System.String | Unicode字符串 |
1.object范例
许多编程语言和层次结构都提供了根范例,层次结构中的其他对象都从它派生而来。C#和.Net也不例外。在C#中object范例就是最终的父范例,全部内置范例和用户定义的范例都从它派生而来。这样,object范例就可以用于两个目标。
- 可以利用object引用来绑定任何特定子范例的对象。例如利用object范例把堆栈中的值对象装箱,再移动堆中。object引用也可以用于反射,此时必须有代码来处理范例未知的对象
- object类实现了许多一样平常用途的基本方法,包括Equals()、GetHashCode()、GetType() 和ToString()。用户定义的类需要利用一种面向对象技术-重写,来提供其中一些方法的替代实现代码。例如,重写ToString()时,要给类提供一个方法,给出类自己的字符提示。假如类中没有提供这些方法的实现代码,编译器就会利用object范例中的实现代码,它们在类上下文中的执行不一定准确。
1.string范例
C#有string关键字,在遮罩下转换为.NET类System.String。有了它,像字符串连接和字符串复制这样的操纵就很简单了。- string str1 = "Hello";
- string str2 = "World";
- string str3 = str1 + str2;
复制代码 尽管这是一个值范例的赋值,但string是一个引用范例。string对象被分配在堆上,而不是栈上。因此,当把一个字符串变量赋予另一个字符串时,会得到对内存中同一个字符串的两个引用。但是string与引用范例的常见行为有一些区别。例如,字符串是不可改变的。修改其中一个字符串,就会创建一个全新的string对象,而另一个字符串不发生任何变革。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |