繁体   English   中英

关于我在C#中实现类的问题

[英]Question on my Class implemention in C#

目前我有一个仅具有属性的类

class MyEntity
{  
    public string FirstName { get; set; }
    public string LastName  { get; set; } 
}

在我的另一堂课中,我习惯将值设置为

MyEntity objEnt = new MyEntity();
objEnt.FirstName="abc";
objEnt.LastName = "edf";

我拥有仅具有属性的MyEntity类的原因是为了确保遵守。

这里的问题是,这种方法是否正确? 我可以有多个MyEntity实例

我可以为此使用静态类吗? 我该如何使用泛型?

顺便说一句,实现是在C#中

提前致谢

干杯,

卡尔提克

  • 由于具有状态,因此不能使用静态类。 静态类只能由静态成员组成。
  • 很难在这里看到如何使用泛型

就个人而言,我希望类型尽可能地保持不变-例如,通过为MyEntity提供带有两个参数的构造函数,并从属性中删除公共设置器。 (不管你保持你只是不构造以外使用,或转移到私人二传手“适当的”只读域和只读属性是另一种选择。)但是这种可变类型可能是你绝对罚款-这是不可能不知道该说些您正在尝试做什么。

请注意,在使用可变类型时,可以使用对象初始化程序简化初始化过程:

MyEntity objEnt = new MyEntity { FirstName = "abc", LastName = "edf" };

(如果将类型设为不可变的,则可以在构造函数中传递值。如果使用的是C#4, 仍可以通过C#4的“命名参数”功能使用名称。)

如前所述,这取决于您的需求。 只是要注意,您不能使用静态类,因为您要拥有多个实例,并且在从多个线程进行访问时同步可能会出现问题。

至于泛型……您在这里需要什么?

我输入了一半的答案,但乔恩回答了,所以我的当前形式的答案变得毫无意义。

不过,我将对乔恩的回答提出反驳。 在使用不可变对象之前要仔细考虑-从某些角度来看,它们是好的,但是如果将它们用于绑定到可编辑字段或序列化它们(存储或传输,即WCF Web服务调用),则将很快陷入困境。

我假设这是对您未指定的DTO的泛型快速使用。

class MyEntity<T>
{
   public T value { get; set; }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM