我有一个结构
namespace lib
{
public struct strct_Test
{
int a;
string b;
}
}
我正在做的其他事情
using lib;
class one
{
private strct_Test var;
public strct_Test Var
{
get {return var;} // or should it be like return var.a; return var.b;
set {var = value;} // or should it be like var.a = value; var.b = value
}
}
那么有人可以在这里引用正确的方法,如代码注释中提到的那样吗?
答案 0 :(得分:3)
属性Var
的类型为strct_Test
。
这意味着getter和setter应该使用该类型,就像在代码中一样。
否则会导致编译错误。
答案 1 :(得分:1)
问问自己你想做什么
您应该认为我是否需要直接使用这些值?
因此,为您使用的每个值编写属性(不是您拥有的所有)
我会从其他班级替换整个架构吗?
所以写你的struc属性
答案 2 :(得分:0)
正确的方法取决于您希望如何构建代码。
在您的示例中,您定义了类型的不可变属性。 strct_Test
,所以如果你是
你做这样的事情:
var o = new one();
o.Var.a = 10;
var x = o.Var;
//x.a != o.Var.a;
希望这可以让您了解代码的行为,因此您可以决定它是否是您具体案例的最佳架构。