R# 设置中 'Local constants' 和 'Constant fields' 之间的差异?

Differences between 'Local constants' and 'Constant fields' in R# settings?

如果您打开 R# 选项并转到代码编辑> C# > 命名样式,则有 2 个设置与我非常相似。本地常量和常量字段(私有)。一种是 lowerCaseCamel,另一种是 UpperCamelCase。

我注意到这一点是因为之前 R# 建议我将所有方法内变量更改为以大写开头的常量,但是现在它告诉我将它们全部设置为小写(我做了很多调整围绕 R# 并尝试对错误等实施一些解决方法,但我认为我在本节中没有更改任何内容)。

那么这两个设置有什么区别呢?

此外,由于我们在上面,每个设置的 R# 默认设置是什么?对于如何设置每个设置是否有基于非意见的(例如 Microsoft 规范)?

C# naming convention for constants?中的内容与中的内容似乎有些冲突 如果局部 const 变量以大写或小写字母 开头,那么我正在寻找基于 R#/Microsoft 建议的答案,而不是基于意见的答案。

局部常量对于方法或方法体而言是局部的(如构造函数、属性 getter 等)。我个人主要在单元测试中使用这些,很少在应用程序代码中使用。这些就像变量一样,只是它们不能改变,我相信 Microsoft 和 R# 的约定都是驼峰式。

public void SomeMethod()
{
    const string someText = "hi";
    const int someInt = 6;
    const bool someBool = false;
    // code that operates using the above constants
    // not available outside of the method body
}

常量字段在 class 或结构上可用,并且可以通过多种方法/其他 class 人员和协作者访问。我认为 R# 已经为这些做了 PascalCase。不确定 Microsoft 的官方约定是什么,但在 Java 中,我认为这些应该是 UPPER_WITH_UNDERSCORES。

public class SomeClass
{
    public const string SomeText = "Hi"; // accesible everywhere
    internal const int SomeInt = 6; // accessible within assembly
    private const bool SomeBool = false; // accessible within class/struct only
}

这个应该说清楚了:

注意非常非常清楚的警告消息: