gpt4 book ai didi

c# - 是否可以将两个 C# 属性合并为一个?

转载 作者:行者123 更新时间:2023-11-30 12:44:00 25 4
gpt4 key购买 nike

我首先在我公司的一个项目中使用 EF6 代码。在该项目中,POCO 类中有几个属性存储波斯语日期信息(例如 1394/01/24)。在我们的数据库中,这些值存储在“CHAR(10)”列中。

我使用字符串属性将这些值存储在我的 POCO 中,并且必须将“ColumnAttribute”和“StringLengthAttribute”附加到每个日期属性:

public class MyPoco
{
...

[Column(TypeName="CHAR")]
[StringLength(10, MinimumLength=10)]
public string MyDate {get; set;}

...
}

我很想知道是否有一种方法可以创建一个结合了这两个属性行为的自定义属性,这样我就可以做这样的事情:

public class MyPoco
{
...

[DateColumn]
public string MyDate {get; set;}

...
}

其中“DateColumnAttribute”应用这两个属性的作用。它绝对可以减少打字。

最佳答案

正如弗洛里安所说:事情不是这样的

Attribute 最终是从基类 Attribute 派生的类。您要做的是创建一个新属性(类),它结合了属性 Column 和 StringLength 的属性。

这是不可能的,因为我们必须创建一个新的属性,它同时派生自两个属性,但这是不可能的,因为 .NET 不允许多重继承。

也是代码风格的问题。如果你能做你想做的事,你就会向开发人员隐藏最初的预期行为。他将不得不打开新属性并意识到,它是另外两个属性的组合。混淆代码的一切通常被认为是不良行为(当然除了它增强可读性)

关于c# - 是否可以将两个 C# 属性合并为一个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29620891/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com