相关疑难解决方法(0)

静态只读与const

我已经阅读了各地conststatic readonly各个领域.我们有一些只包含常量值的类.用于我们系统中的各种事物.所以我想知道我的观察结果是否正确:

这些常量值是否应始终static readonly适用于所有公开的内容?并且仅const用于内部/受保护/私有值?

您有什么推荐的吗?我是否可能甚至不使用static readonly字段,而是使用属性?

c# constants

1349
推荐指数
14
解决办法
37万
查看次数

私有成员是否继承在C#中?

刚看到一个教程说:

Class Dog
{
  private string Name;
}
Class SuperDog:Dog
{
 private string Mood;
}
Run Code Online (Sandbox Code Playgroud)

然后有一个UML显示SuperDog也会继承Name.我试过但似乎只有公共成员才能继承.至少我无法访问Name,除非它被声明为public.

c# inheritance private

57
推荐指数
4
解决办法
7万
查看次数

类似Enum的课程

我正在寻找一个关于如何创建类似枚举类的最佳实践,而不是数字包含字符串值.像这样的东西:

public static class CustomerType
{
  public static string Type1 = "Customer Type 1";
  public static string Type2 = "Customer Type 2";
}
Run Code Online (Sandbox Code Playgroud)

我会在整个应用程序中使用此类作为我需要CustomerType的所有情况的值.我不能使用Enum,因为这是遗留系统,这样的值在任何地方都是硬编码的,我只是想把它们集中在一个地方.

在上面的示例中,问题是我应该用于声明变量:

  1. 静态只读关键字
  2. const关键字
  3. 或者只是静态的

设置这些类和值的最佳做法是什么?

.net c# string const static-members

10
推荐指数
1
解决办法
4636
查看次数

如何定义公共静态只读字段?

在 C# 中,可以像这样定义一个公共静态只读字段:

namespace MyNamespace
{
    public static class MyClass
    {
        public static readonly string MyValue = "Test";
    }
}
Run Code Online (Sandbox Code Playgroud)

在 F# 中,我能想到的最符合上述定义的代码是:

namespace MyNamespace

module MyClass =
    [<Literal>]
    let MyValue = "Test"
Run Code Online (Sandbox Code Playgroud)

但这实际上转化为以下 C# 片段:

namespace MyNamespace
{
    public static class MyClass
    {
        public const string MyValue = "Test";
    }
}
Run Code Online (Sandbox Code Playgroud)

如何在 F# 中定义公共静态只读字段?const对我来说不是一个选择,因为我想使用不同的程序集

.net f#

5
推荐指数
1
解决办法
1033
查看次数

标签 统计

c# ×3

.net ×2

const ×1

constants ×1

f# ×1

inheritance ×1

private ×1

static-members ×1

string ×1