关于C#中 get set的疑惑,代码:
using System;
namespace com.cn
{
class A
{
private string str;
public string Str
{
get
{
return str;
}
set
{
if (value==null)
str = "Hello World!";
else str = value;
}
}
static void Main()
{
A a = new A();
Console.WriteLine(a.str);}
}}
value这个值从哪里来,上面代码执行的时候没有输出任何东西。我是想set方法内部设置属性值,麻烦高手解释一下。
using System;
namespace com.cn
{
class A
{
private string str;
public string Str
{
get
{
return str;
}
set
{
if (value==null)
str = "Hello World!";
else str = value;
}
}
static void Main()
{
A a = new A();
Console.WriteLine(a.str);}
}}
value这个值从哪里来,上面代码执行的时候没有输出任何东西。我是想set方法内部设置属性值,麻烦高手解释一下。
解决方案 »
- DataGridView更新HeaderCell后为何不显示?
- txt数据导入sql出错
- 对正在上传下载的文件进行取消操作
- 采用DirectShowLib-2005的DXsnap 例子拍摄出来的图像效果问题(高分)
- C# 安装与部署项目中Web引导程序安装文件夹的URL能动态设置吗
- 透明问题
- DirectoryEntry可以对相应路径下的对象进行遍历,DirectorySearcher可以进实例的DiretoryEntry进行搜索,二者有什么区别吗?
- 可以在Timer1_Tick事件里面写Button1_Click事件么?这样写怎么不对?
- 安装包安装时,怎么忽略当前计算机用户的权限,已管理员的权限进行安装了?
- 如何在dll中模拟键盘输入
- 如何判断点是否在直线上
- 一行写不下的字符串string要怎么写?
Console.WriteLine(a.str); a.str="我是参数";
你所说的 value 就是这个 “我是参数”。是一个隐式的。
在构造的时候,string str
默认构造就是 str=null;所以
Console.WriteLine(a.str);
就是Console.WriteLine(null);
同理,get就是这个对象在等号右边出现的时候value 是一个隐含的参数