属性作为虚字段使用
2010-12-13 00:22
183 查看
把C#入门经典第四版的基础部分重打了遍后 我又拿起了上次刚看到类这章的c#本质论
属性和方法调用不允许作为ref或out参数值使用
C#允许属性像字段那样使用,只是不允许将它们作为ref或our参数值来传递. ref和out参数值在内部实现时,需要将内存地址传给目标方法. 但是,
由于属性可能是没有支持字段的虚字段, 也有可能是只读/只写的,因此不可能传递其基础存储的地址. 所以, 不能将属性作为ref或out参数值来传递. 首先必须将值复制到一个变量中, 然后传递该变量. 方法调用结束之后, 再将变理的值赋回给属性.
Name属性的取值方法将FirstName和LastName属性返回的值连接到一起. 事实上,所赋的姓氏值并没有真正存储下来. 为Name属性赋值时,右侧的值会解析成它的名字和姓氏部分
感觉没啥注释好加的...很明了的代码
Code:
class Employee
{
public string FirstName
{
get;
set;
}
public string LastName
{
get;
set;
}
//属性作为虚字段使用
public string Name
{
get
{
return FirstName + " " + LastName;
}
set
{
string[] names;
//以' '拆分 存入names数组
names = value.Split(new char[] { ' ' });
//判断数组长度
if (names.Length == 2)
{
FirstName = names[0];
LastName = names[1];
}
else
{
throw new System.ArgumentException(
string.Format(
"Assigned value '{0}' is invalid", value));
}
}
}
}
QQ群:45406906
欢迎菜鸟及大神们加入
技术交流 学习经验
学生的群 大多都是菜鸟 不必拘束...只要相互尊重就可以了
属性和方法调用不允许作为ref或out参数值使用
C#允许属性像字段那样使用,只是不允许将它们作为ref或our参数值来传递. ref和out参数值在内部实现时,需要将内存地址传给目标方法. 但是,
由于属性可能是没有支持字段的虚字段, 也有可能是只读/只写的,因此不可能传递其基础存储的地址. 所以, 不能将属性作为ref或out参数值来传递. 首先必须将值复制到一个变量中, 然后传递该变量. 方法调用结束之后, 再将变理的值赋回给属性.
Name属性的取值方法将FirstName和LastName属性返回的值连接到一起. 事实上,所赋的姓氏值并没有真正存储下来. 为Name属性赋值时,右侧的值会解析成它的名字和姓氏部分
感觉没啥注释好加的...很明了的代码
Code:
class Employee
{
public string FirstName
{
get;
set;
}
public string LastName
{
get;
set;
}
//属性作为虚字段使用
public string Name
{
get
{
return FirstName + " " + LastName;
}
set
{
string[] names;
//以' '拆分 存入names数组
names = value.Split(new char[] { ' ' });
//判断数组长度
if (names.Length == 2)
{
FirstName = names[0];
LastName = names[1];
}
else
{
throw new System.ArgumentException(
string.Format(
"Assigned value '{0}' is invalid", value));
}
}
}
}
QQ群:45406906
欢迎菜鸟及大神们加入
技术交流 学习经验
学生的群 大多都是菜鸟 不必拘束...只要相互尊重就可以了
相关文章推荐
- responseXML 属性 如果来自服务器的响应是 XML,而且需要作为 XML 对象进行解析,请使用 responseXML 属性: 请求 books.xml 文件,并解析响应:
- oracle关键字作为字段名使用方法
- Hibernate的注释该如何使用? 属性 数据库中 字段 实体 级联删除
- 使用mysql数据库的关键字作为表的属性名,同时使用hibernate时出现异常错误:MySQLSyntaxErrorException
- 使用泛型作为属性
- Hive创建表时使用Unicode字符作为字段分隔符(hive unicode character as delimiter)
- bean作为formBean中属性使用
- javascript中使用关键字和保留字作为属性
- 在COM接口中不要使用同时出现只是大小写不同的名字作为属性名、函数名或者参数名
- 使用hibernate注解,如何标识一个属性为非数据库的字段
- 9.png(9位图)在android中作为background使用导致居中属性不起作用的解决方法
- sql常用的关键字 (避免在table中使用这些作为字段)
- Java学习笔记41. 把对象作为类的成员字段使用
- 为 Analysis Services 数据库使用扩展字段属性(SQL Server 2005 联机丛书(2008 年 11 月))
- mybatis插入一个对象后获取表中自增的主键Id并且传入到插入的的对象中,方便将对象中其他属性赋值给其他以前表主键Id作为非空字段的表
- Mongoose使用Date.now作为字段默认值
- 使用公共静态属性的方式来代替公共静态字段(C#)
- 应用程序中的所有线程都可以访问方法中的公用字段。要同步对公用字段的访问,您可以使用属性替代字段,并使用 ReaderWriterLock 对象控制访问。为此,请按照下列步骤操作:
- 使用Wisdom RESTClient进行自动化测试,如何取消对返回的body内容的校验?对排除的JSON属性字段不做校验?
- 使用变量作为js对象的属性名