我查看了资料,定义属性有两种方式: 第一种: public string LoginName
{
get;
set;
} 第二种: private string loginName; public string LoginName
{
get
{
return loginName;
}
set
{
loginName = value;
}
}两种定义属性有什么差别?使用第二种定义属性的较广。
然后就是属性引用的问题啦。
定义好属性类(如:登陆类(public class LoginType{})),在登陆时已经给他们赋值了,但是在要用的地方的时候调用他们是,总是要New登陆对象,把之前赋给登陆类的值全清空了,如何定义一个公共属性,既可以对值进行操作,又可以把值传给每个要用到该类的地方?我想了下,用静态方法固然可以做到,但是静态方法定义的属性,不可改变它的值。还请高手解惑,在此谢谢了!
{
get;
set;
} 第二种: private string loginName; public string LoginName
{
get
{
return loginName;
}
set
{
loginName = value;
}
}两种定义属性有什么差别?使用第二种定义属性的较广。
然后就是属性引用的问题啦。
定义好属性类(如:登陆类(public class LoginType{})),在登陆时已经给他们赋值了,但是在要用的地方的时候调用他们是,总是要New登陆对象,把之前赋给登陆类的值全清空了,如何定义一个公共属性,既可以对值进行操作,又可以把值传给每个要用到该类的地方?我想了下,用静态方法固然可以做到,但是静态方法定义的属性,不可改变它的值。还请高手解惑,在此谢谢了!
解决方案 »
- C#怎么读取Xml文件的节点值
- 一个数组的list集合如何按照数组中的两个元素排序
- wpf
- 在一个 form 里边想显示一个5行5列的表格行不?
- 求一条正则表达式
- vb.net里的“异或” 和C# 里的“异或” 疑问!!!1
- 一个chm文件 不小心在打开方式上选择“wnirar”方式 结果他就变化成压缩文件图标更打不开了 帮助!
- -----WPF DataGrid新手问题--------------------------@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
- 到底怎么回事?!!!!!!!!!!!!!!!!!!!!
- discuz论坛里面注册用户需要滑动图片验证,用webbrowser编写自动注册器这个怎么破?
- Windows CE 平台中获取设备连接状态
- DesignSurface 实现设计器问题?
自动属性
自动属性,定义时必须同时有set get
如果只有set或get则会报错
用的时候直接从session里取
和.net无关,编译器的特性。vs2008创建.net 2.0框架的程序一样可以用自动属性。但自动属性在2010之前无法初始化,需要构造函数里统一初始化,否则引用类型的将是null.不过这也不是什么坏事,风格也还好。
class Program
{
public string once
{
get;
set;
}
static void Main(string[] args)
{
}
}写了一段代码,在.net 2.0编译通过,说明不是3.0新特性,用IL disassembler打开
.field private string '<once>k__BackingField'
.custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 )
编译器自动给定义了一个field