由于长时间没有玩编程,导致好些东西都忘记了。
天天玩游戏,现在连游戏都玩腻了。
又开始摸摸键盘了。
所以今天用了一点时间来想,如何获取属性。
现在有两个类, 一个A类, 一个main类
目的: 从main类获取A类的属性。
对于private属性的变量name1,通过getset方法或者a类的带变量赋值的构造方法, 就可以获取name1
对于public 属性的变量name2,既可以getset,构造方法获取变量name2
,也可以new 一个对象, 通过 对象.变量 ,就可以赋值,并获取到这个变量。
namespace 用法_
{
class A
{
private string name1 ;
public string name2 = "000";
//不带参数的构造方法
public A()
{
}
//带参数的构造方法
public A(string name)
{
this.name2 = name;
}
//set方法
public void setName(string name)
{
this.name1 = name;
}
//get方法
public string getName()
{
return name1;
}
}
}
class Program
{
static void Main(string[] args)
{
//$ 的用法
A a1 = new A();
a1.setName("123");
A a2 = new A();
a2.name2 = "456";
//string msg1 = a.getName();
Console.WriteLine($"c1 = {a1.getName()}");
//这行代码是错的,编译器报错。
Console.WriteLine($"c2 = {name2}");
}
}
今天就研究这个为什么name2会直接报错的问题,这个变量放在A类里面,而且属性是public,还已经赋值了000这个字符串。
因为main方法是程序入口,我的理解是编译器扫描是从 static void Main(string[] args)这一句话开始扫描下去,所以在main里面没有定义这个name2变量的话,自然而然是抓不到这个变量的。
只能创造对象去拿这个变量。