日期:2014-05-18  浏览次数:20912 次

大小“String”和属性声明
大小“String”和属性声明有什么不同呢,如下:

1、大小“String”:
  public String Label
   
  public string Label
   
  问题一:大写“String”和小写“string”有什么不同呢?

2、属性声明
  (1)直接“get”和“set”。
  public string Label
  {
  get;
  set;
  }
  (2)用“_”
  String _label;
  public String Label
  {
  get
  {
  return _label;
  }
  set
  {
  _label = value;
  }
  }
  问题二:这两种方式有什么不同呢?用“_label”有什么好处?

------解决方案--------------------
String类表示一系列不可变的字符。
String 的实例被称为是“不可变的”,这是由于一旦创建它就无法修改它的值。看似能修改 String 的方法实际上只是返回一个包含修改内容的新 String。如果需要实际修改类似字符串的对象的内容,则需使用 System.Text.StringBuilder 类。
该类实现 IComparable、ICloneable、IConvertible 和 IEnumerable 接口

而string 类型表示一个 Unicode 字符的字符串。string 是 .NET 框架中 System.String 的别名。string也是C#关键字。
在用法上:
string可用 @ 开头,并用双引号引起来。例,@"good morning",称作“逐字符字符串”,即不处理'\n','\t'等符号。
------解决方案--------------------
1. string是c#中的类,String是.net Framework的类; c# string映射为.net Framework的String,你可以把它们当成是一样的,只是两种写法。

2. 这是一种命名规范,通常用下划线'_'开头的代表私有变量。
------解决方案--------------------
一个是类,一个是关键字!
------解决方案--------------------
1:
没有区别,小写的是传承于C++?保留习惯用的,大写的正统,本人有轻微强迫症,一般都用大写的

2:
没有区别,但是(2)的写法比较建议,因为你在class内部修改值的时候,用_label 更好。
典型的好处是,你查找调用该属性的地方的时候,可以区分内外
------解决方案--------------------
简单地说,(1)(2)作用都是一样的。

(1)string这种写法更好,和其他语言以及其他关键字统一起来。
(2)一般地,C# 3.0以后使用自动属性的写法。
------解决方案--------------------
探讨
1:
没有区别,小写的是传承于C++?保留习惯用的,大写的正统,本人有轻微强迫症,一般都用大写的

2:
没有区别,但是(2)的写法比较建议,因为你在class内部修改值的时候,用_label 更好。
典型的好处是,你查找调用该属性的地方的时候,可以区分内外

------解决方案--------------------
探讨

1:
没有区别,小写的是传承于C++?保留习惯用的,大写的正统,本人有轻微强迫症,一般都用大写的

2:
没有区别,但是(2)的写法比较建议,因为你在class内部修改值的时候,用_label 更好。
典型的好处是,你查找调用该属性的地方的时候,可以区分内外

------解决方案--------------------
其实我倒觉得你把set方法都写了,就没必要在定义一个字段了
要是没有set方法,为了封装,定义一个私有变量是挺好的
探讨

1. string是c#中的类,String是.net Framework的类; c# string映射为.net Framework的String,你可以把它们当成是一样的,只是两种写法。

2. 这是一种命名规范,通常用下划线'_'开头的代表私有变量。

------解决方案--------------------
(1) 没区别,也没什么好说的
(2) 属性的变量一般声明的都是private '_'开头为private 推荐这样使用,或者直接声明private的变量