gpt4 book ai didi

c# - 有什么理由在字段上使用非常简单的属性吗?

转载 作者:太空宇宙 更新时间:2023-11-03 23:08:45 25 4
gpt4 key购买 nike

我目前已经编写了这段代码:

public class General
{
/// <summary>
/// Private variables.
/// </summary>
private const float fVersion = 1.3f;
private static bool bMonitoring = false;

/// <summary>
/// Retrieves the current version of the application.
/// </summary>
public static float Version
{
get
{
return fVersion;
}
}

/// <summary>
/// Are we monitoring performance?
/// </summary>
public static bool Monitoring
{
get
{
return bMonitoring;
}

set
{
bMonitoring = value;
}
}
}

以防我经常检查 General.bMonitoringGeneral.Version(也许......每秒超过 100 次!)并且真的很关心性能:它好吗练习让我的类(class)像这样写,还是我应该简单地删除这些属性并公开这些字段?

最佳答案

在这种情况下,如果您不打算向 getter 或 setter 添加一些逻辑,那么我会使用静态字段。性能将是相同的。

但是,如果稍后您在设置或获取值时需要额外的逻辑,那么它会优先使用属性,因为它允许进行版本控制,并根据 OOP 原则为您提供封装。不关心性能

对于 Monitoring 属性,您可以使用自动实现的属性,例如

public static bool Monitoring { get; set; }

但在这种情况下你需要实现一个静态构造函数(感谢@Mafii)

    static General()
{
Monitoring = false;
}

或者,如果您使用 C# 6.0,则只需:

public static bool Monitoring { get; set; } = false;

关于c# - 有什么理由在字段上使用非常简单的属性吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40212304/

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