<%@ Page Language="C#" %>
<script runat="server"> public class Person
{
private string _Name;
public Person(){}
public string Name{
get{
return _Name;
}
set{
_Name=value;
}
}
}
void Page_Load(object Sender,EventArgs E){
Person myPerson=new Person();
myPerson.Name="Susan";
Name.Text=myPerson.Name;
}<%@ Page Language="C#" %>
<script runat="server"> public class Person
{
private string Name;
public Person(){}
public string Name{
get{
return Name;
}
set{
Name=value;
}
}
}
void Page_Load(object Sender,EventArgs E){
Person myPerson=new Person();
myPerson.Name="Susan";
Name.Text=myPerson.Name;
}
为什么第一个是正确的,而第二个运行时有错误呢?
<script runat="server"> public class Person
{
private string _Name;
public Person(){}
public string Name{
get{
return _Name;
}
set{
_Name=value;
}
}
}
void Page_Load(object Sender,EventArgs E){
Person myPerson=new Person();
myPerson.Name="Susan";
Name.Text=myPerson.Name;
}<%@ Page Language="C#" %>
<script runat="server"> public class Person
{
private string Name;
public Person(){}
public string Name{
get{
return Name;
}
set{
Name=value;
}
}
}
void Page_Load(object Sender,EventArgs E){
Person myPerson=new Person();
myPerson.Name="Susan";
Name.Text=myPerson.Name;
}
为什么第一个是正确的,而第二个运行时有错误呢?
不过在第一个程序里:
void Page_Load(object Sender,EventArgs E){
Person myPerson=new Person();
myPerson.Name="Susan";//这里为什么不写成myPerson._Name="Susan"呢?
Name.Text=myPerson.Name;
}
get{
return Name;
}
set{
Name=value;
}
}
死递归能运行才怪.
public class Person
{
private string peopleName; public Person(){}
public string peopleName{
get{
return peopleName;
}
set{
peopleName=value;
}
}
} void Page_Load(object Sender,EventArgs E){
Person myPerson=new Person();
myPerson.peopleName="Susan"; Name.Text=myPerson.peopleName;
}
Compiler Error Message: CS0102: The type 'ASP.testobject_aspx.Person' already contains a definition for 'peopleName'Source Error: Line 7:
Line 8: public Person(){}
Line 9: public string peopleName{ //这一行出错。
Line 10: get{
Line 11: return peopleName;不知到底错在哪,但是在类定义中把peopleName修改为_peopleName就ok了。
get{
return Name;
}
set{
Name=value;
}
}
死递归能运行才怪.我想请问一下这是死递归吗?不懂。
为什么这个不是死递归?
public string Name{
get{
return _Name;
}
set{
_Name=value;
}
}
该死的 "_" 号:不知道他有什么作用。
而调用的是myPerson.Name="Susan",
_Name和Name是怎么关联起来的?
哎,晚上还是去图书馆找本c#好好看看吧,我现在看的
asp.net上c#语法讲的不多。感觉语言越高级,了解的
原理就越少了。
public class Person
{
private string _Name;
public Person(){}
public string Name{
get{
return _Name;
}
set{
_Name=value;
}
}
}
来看看这段代码!!
你在类person中定义了一个私有变量_Name,既然是私有变量也就是说只能在类中访问。而你初始化person类后是不能访问的,
例 Person myPerson=new Person();
myPerson._Name是不可以的。二,你在类中又定义了一个pulic变量Name,这个变量是初始化类后可以访问的,而在类中_Name的值就通过Name中的GET和SET操作去读取值或间接赋值。如果类中两个变量同名是不允许的!!因为是同一个作用域,而不是“_"的关系。只要不同名都可以
private string _Name; //这里是定义属性,变量和属性不能同名:
myPerson.Name="Susan"; //这里是调用变量:变量在类里再访问属性。
楼主刚好讲反了//这里是定义变量:
public string Name{
get{}
set{}
}
private string _Name; //这里是定义变量,变量和属性不能同名:
myPerson.Name="Susan"; //这里是调用属性:属性在类里再访问私有变量
//这里是定义属性
public string Name{
get{}
set{}
}