我刚刚开始学习C#,并在以下代码的具体测试答案中提到:
Tak的set属性缺失或不正确 .
代码由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中,我得到 NOT ALWAYS 以下内容:
'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” . 跳过加载符号 . 模块已经过优化,调试器选项“Just My Code”已启用 . '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文件” . 跳过加载符号 . 模块已经过优化,调试器选项“Just My Code”已启用 . 线程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#都很陌生,所以如果有人能告诉我错误或向我解释有什么问题,我会很感激 .
3 回答
set
属性Val
始终将属性设置为相同的值 . 相反,它应该很可能将属性设置为用户输入的值:或者,如果意图是 always 的值为3.14(即只读),则可以删除setter并获取将返回值:
Val属性中的集合应为val = value;
value
在C#中是一个关键字,是实例化赋值的属性值 .您的 property 的行为与通常的 property 状态不同 . 当我设置像23.4这样的值时,我希望能够坚持下去 . 在你的情况下,你的 class 不关心我设置的内容 . 当我设置一些东西,真的,属性将是3.14 .
您的属性应设置给定的值(在本例中为23.4) . 您可以使用
value
关键字执行此操作: