C#属性和数据
来源:互联网 发布:英语单词词典数据库 编辑:程序博客网 时间:2024/05/29 12:26
</pre>关于C#中先用数据实现再在需要的时候改成属性的问题。<p></p><p></p><pre code_snippet_id="580033" snippet_file_name="blog_20150114_2_4078781" name="code" class="csharp">public class Customer{ public string Name;}这个类描述一个客户(Customer),包含了一个名称。你可以使用熟悉的成员表示方式获取设置该名称:
string name=customerOne.Name;customerOne.Name="This Company,Inc.";
看似简单直观,你也会认为若日后将Name改成属性,那么代码也可以无需修改保证正常。但是这个答案并不是完全正确的。属性仅仅是访问时类似于数据成员,这是语法所实现的目的。不过属性并不是数据,属性的访问和数据的访问将会生成不同的MSIL(Microsoft Intermediate Language,微软中间语言)指令。
虽然属性和数据成员在源代码层次上是兼容的,不过在二进制层面上却大相径庭。这也就意味着,若将某个共有的数据成员改成了与之等同的共有属性,那么就必须重新编译用到该公有数据成员的代码。C#把二进制程序集作为一等公民对待。该语言本身的一个目标就是支持发布某个单一程序及时,不需要更新整个的应用程序。而这将数据成员改为属性的简单操作却颇花掉了二进制的兼容性,也就会让更新单一程序集变得非常困难。
0 0
- C#属性和数据
- c#属性和索引
- c# 字段和属性
- C#属性和字段
- C# 属性和字段
- C# 属性和索引
- c# 字段和属性
- C#属性和字段
- C# 字段和属性
- c# 类和属性
- 属性和元数据
- C#方法,属性,和事件
- c#中的属性和字段
- c#中属性和域
- C#字段和属性小结
- C#参数传递和属性
- C#属性和索引器
- C# get和set属性
- 【将金令】交易背后的哲学之道
- unity之角色升级
- 【将金令】七分谋略,三分习惯
- 搜狗浏览器升级策略自动化测试
- Matlab中的nargin命令
- C#属性和数据
- POJ1035 字符串处理(水)
- [leetcode]179 Largest Number
- Null value was assigned to a property of primitive type setter of的bug
- 编译原理 语法树 句柄 简单短语 短语
- 栈Stack的一些基本操作
- c++链接数据库
- BAT批处理回显时间和目录
- HLSL注意事项