首页 > 解决方案 > 我们可以将类字段分配给同一类(在 C# 中)中方法的默认或可选参数吗?

问题描述

我想上课如下:

public static class Class
{
  static string Name { get; set; }

  public static void Method(string Name=Class.Name, string Type="default")
  {
    Console.WriteLine("Name={0}",Name);
  }
}

但默认参数必须是编译时参数。那么有什么想法可以实现吗?

标签: c#

解决方案


你不应该能够,除非有问题的字段是const. 在您的示例中,它甚至不是一个字段,而是一个属性。

进一步阅读会有所帮助,因为在某些情况下常量不是常量,即十进制常量。请在此处查看 Jon Skeet 的博客。

编辑:由于您不能拥有consts,因此您需要诉诸方法重载,参数数量较少的方法将调用参数数量较多的方法,并为额外参数提供值。


推荐阅读