【发布时间】:2021-11-09 07:36:28
【问题描述】:
我在一个类中有某些类变量,我想在设置它们时做一些事情(检查有效,用空格填充等)。我以前从未使用过 get set,我想知道使用这些方法是否正确,但出现堆栈溢出错误。
public string DELIVERY_DATE
{
get { return DELIVERY_DATE; }
set
{
DELIVERY_DATE = checkDate(value, "yyyyMMdd");
}
}
【问题讨论】:
-
DELIVERY_DATE是一个属性。您需要在 setter 和 getter 中使用支持字段(即变量)。参考this。 -
您在变量的 setter 中设置变量,导致无限递归...为值使用单独的 var。
-
另外,您应该真正使用标准 C# 命名约定。供您欣赏docs.microsoft.com/en-us/dotnet/csharp/fundamentals/…
-
Setter 和 getter 只是编译器生成的方法,你可以在其中做任何你喜欢的事情,理想情况下你不想做任何繁重的(或异步工作),但是一个小的验证或突变很好。至于这些线在哪里以及有多少验证(例如投掷)是最佳实践,这是自以为是的。
标签: c#