【发布时间】:2014-12-16 20:58:33
【问题描述】:
我刚刚开始学习 C#,并且在对以下代码的特定测试的答案中提到:
Tak 的设置属性丢失或不正确。
代码由2个类组成。
主类 1:
namespace ConsoleApplication6
{
class Program
{
static void Main(string[] args)
{
Takis obj = new Takis();
obj.Val = 23.4;
Console.WriteLine(obj.Val);
}
}
}
第 2 类:
namespace ConsoleApplication6
{
class Takis
{
double val;
public double Val
{
get
{
return val;
}
set
{
val = 3.14;
}
}
public Takis()
{
}
}
}
在 Visual Studio 中,我得到 不总是以下内容:
'ConsoleApplication6.vshost.exe' (CLR v4.0.30319: ConsoleApplication6.vshost.exe):已加载 'C:\Windows\Microsoft.Net\assembly\GAC_32\System.Data\v4.0_4.0.0.0__b77a5c561934e089\System.Data.dll'。 跳过加载符号。模块经过优化和调试器选项 “只是我的代码”已启用。 'ConsoleApplication6.vshost.exe' (CLR v4.0.30319:ConsoleApplication6.vshost.exe):已加载 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Xml\v4.0_4.0.0.0__b77a5c561934e089\System.Xml.dll'。 跳过加载符号。模块经过优化和调试器选项 “只是我的代码”已启用。线程 0x1610 已退出,代码为 259 (0x103)。线程 0x1638 以代码 0 (0x0) 退出。线程 0x13f4 已退出,代码为 259 (0x103)。 'ConsoleApplication6.vshost.exe' (CLR v4.0.30319: ConsoleApplication6.vshost.exe):已加载 'c:\users\stefanos\documents\visual studio 2013\Projects\ConsoleApplication6\ConsoleApplication6\bin\Debug\ConsoleApplication6.exe'。 已加载符号。线程 0x1480 已退出,代码为 259 (0x103)。 线程 0x1498 已退出,代码为 259 (0x103)。
由于我对 Visual Studio 和 C# 非常陌生,如果有人能告诉我错误或向我解释问题所在,我将不胜感激。
【问题讨论】:
-
set 方法总是将 val 设置为 3.14 - 这显然是错误的
-
您引用的输出在这里无关紧要。这看起来像是一种典型的行为。
-
另外,对于设置方法,使用“值”来实际使用分配给设置的任何值。
set { val = value; }
标签: c# properties read-write