结构和属性

时间:2013-04-16 13:17:24

标签: c# properties

我有一个结构

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
    }
}

那么有人可以在这里引用正确的方法,如代码注释中提到的那样吗?

3 个答案:

答案 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; 

希望这可以让您了解代码的行为,因此您可以决定它是否是您具体案例的最佳架构。