新手问下c#一些属性有关问题
新手问下c#一些属性问题
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
student st = new student();
st.Name = "luo";
Console.WriteLine(st.Name);
}
}
public class student
{
public string name;
public string Name
{
get
{
return name;
}
set
{
name =value ;
}
}
}
}
1.我想问下st.Name="luo"什么意思?
2public string Name这句话不是定义一个共有的变量吗?
那public string Name
{
get
{
return name;
}
set
{
name =value ;
}
}这段什么意思啊,怎么感觉这是函数啊。?set,get,vlaue这又是什么啊??谁能告诉我下,谢谢,新手太多疑问了
------解决方案--------------------
第一个是赋值。
后面的是属性Property的设置方法。name应该是private的,Name才是Public的
------解决方案--------------------
属性本来就是两种 set、get 函数的封装。在c#,属性岂不是比你自己写函数更方便?你可以把原本针对字段进行读写的代码,毫不费力地改为针对属性的,从而扩展读写功能。
------解决方案--------------------
c#的属性,你可以理解为公共方法。
set
{
name =value ;
}
等同于
void SetName(string value)
{
name =value ;
}
get
{
return name;
}
等同于
string GetName()
{
return name;
}
再来逐一回答你的问题:
1.st.Name="luo"===》因为是赋值,那执行的就是set里面的代码name =value ;
2.public string name;与public string Name{}不一样,一个是变量一个是属性(你可以认为是方法)
3.这段什么意思啊,怎么感觉这是函数啊。?set,get,vlaue这又是什么啊??===》最开始已经回答你了。
------解决方案--------------------
1.我想问下st.Name="luo"什么意思?
就是给学生实例st的名字属性赋值的意思。
2public string Name这句话不是定义一个共有的变量吗?
这么写是有问题的,作为成员还是用private隐藏起来,外部只能通关过Name属性来访问这个成员。
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
student st = new student();
st.Name = "luo";
Console.WriteLine(st.Name);
}
}
public class student
{
public string name;
public string Name
{
get
{
return name;
}
set
{
name =value ;
}
}
}
}
1.我想问下st.Name="luo"什么意思?
2public string Name这句话不是定义一个共有的变量吗?
那public string Name
{
get
{
return name;
}
set
{
name =value ;
}
}这段什么意思啊,怎么感觉这是函数啊。?set,get,vlaue这又是什么啊??谁能告诉我下,谢谢,新手太多疑问了
------解决方案--------------------
第一个是赋值。
后面的是属性Property的设置方法。name应该是private的,Name才是Public的
------解决方案--------------------
属性本来就是两种 set、get 函数的封装。在c#,属性岂不是比你自己写函数更方便?你可以把原本针对字段进行读写的代码,毫不费力地改为针对属性的,从而扩展读写功能。
------解决方案--------------------
c#的属性,你可以理解为公共方法。
set
{
name =value ;
}
等同于
void SetName(string value)
{
name =value ;
}
get
{
return name;
}
等同于
string GetName()
{
return name;
}
再来逐一回答你的问题:
1.st.Name="luo"===》因为是赋值,那执行的就是set里面的代码name =value ;
2.public string name;与public string Name{}不一样,一个是变量一个是属性(你可以认为是方法)
3.这段什么意思啊,怎么感觉这是函数啊。?set,get,vlaue这又是什么啊??===》最开始已经回答你了。
------解决方案--------------------
1.我想问下st.Name="luo"什么意思?
就是给学生实例st的名字属性赋值的意思。
2public string Name这句话不是定义一个共有的变量吗?
这么写是有问题的,作为成员还是用private隐藏起来,外部只能通关过Name属性来访问这个成员。