this.name = name;啥意思啊,吓死人了
第一个段代码
class Person
{
String name;
public Person(String name)
{
this.name = name;
}
}
第二段代码
class Person
{
public string m_name;
public Person(string name)
{
m_name = name;
}
}
构造函数不是下面那种写法吗,name是参数,把传入的值赋给m_name;那上面那种写法啥意思呢,请解释一下,另外,就是this的用法,哪些时候会用到this,我知道索引的时候用到
------解决方案-------------------- 区别只在于第二段代码中的m_name能被外部访问,其余一致
C# this关键字引用当前对象实例的成员。
不用也没关系,我的体会是用this可以出智能感知,方便点
------解决方案-------------------- 2种写法效果一样,this这个地方就是class Person
------解决方案-------------------- String name;
字段
通过构造函数赋值
属性比字段更面向对象,具体就体现在封装性上。
字段不能进行控制,而属性可以解决这样的问题
字段用于存储类或结构满足其设计所必须拥有的数据。类和结构使用字段封装数据。字段通常应为 private。外部类应该通过方法、属性或索引器间接访问字段。
------解决方案-------------------- 这个问题也问 确实吓死我了
------解决方案-------------------- 探讨 String name; 字段 通过构造函数赋值 属性比字段更面向对象,具体就体现在封装性上。 字段不能进行控制,而属性可以解决这样的问题 字段用于存储类或结构满足其设计所必须拥有的数据。类和结构使用字段封装数据。字段通常应为 private。外部类应该通过方法、属性或索引器间接访问字段。
------解决方案-------------------- 多多看书。
------解决方案-------------------- this在这里代表当前对象实例
------解决方案-------------------- this就是指当前操作的对象,比如说你在Form1中的Form1.cs中编写代码,this就是指Form1,this.Text就是Form1的标题,第一种写法的this.name是指当前对象的局部变量,而构造函数是外部调用这个类是传递的参数,这个意思是将外部传入的参数传递给本对象的变量name
------解决方案-------------------- 楼上的解释很准确了。
要详细点就去MSDN
------解决方案-------------------- 探讨 引用: 区别只在于第二段代码中的m_name能被外部访问,其余一致 C# this关键字引用当前对象实例的成员。 不用也没关系,我的体会是用this可以出智能感知,方便点 如果第一段的string name前加上public 呢,是不是也可被外部访问呢
------解决方案-------------------- 还是先看看书
------解决方案-------------------- this是指当前对象
专业的解释不会,简单来说就是,你定义1个变量,但是又传进了
1个名字类型都一样的参数,这时候需要用this区分,this.name就是
指你定义的变量,而name就是传入参数
------解决方案-------------------- 如果把第一个代码改成:
class Person
{
public String name;
public Person(String name)
{
this.name = name;
}
}
那这两段代码就完全一样了,this在这的作用就是区分开两个name变量
this.name 是生命的public string name
= 后边那个name是public person(string name)这个里边的name
------解决方案-------------------- 探讨 如果把第一个代码改成: class Person { public String name; public Person(String name) { this.name = name; } } 那这两段代码就完全一样了,this在这的作用就是区分开两个name变量 this.name 是生命的public string name = 后边那个……
------解决方案-------------------- this.name中的name指的是类的字段变量,=name指的是构造函数参数,只是一个参数名而已,形参,当调用时传入具体的值,实参
------解决方案-------------------- 楼上都说了,恭祝楼主春节愉快。
------解决方案--------------------