【发布时间】:2018-03-05 21:32:07
【问题描述】:
我对 c# 很陌生,但我被卡住了。我在下面解释了我的情况。
现在我有一个这样的枚举列表,
public enum Colors
{
Black,
Blue,
Red
}
我有 2 个带有 switch 语句的类(我只展示了 1 个类,因为这两个类是相似的)。现在我收到这样的错误An object reference is requesred for the non-static field, method, or property 'RandomColor.GetColors'。我也可以在我所有使用这个 switch 语句的类中使用答案版本,但是因为我想做像更改一个文件中的值,它会为我更改所有类中的值。
public class RandomColorService
{
public readonly string _url;
public RandomColorService()
{
switch (RandomColor.GetColors)
{
case Colors.Black:
_url = "Use url for black color";
break;
case Colors.Blue:
_url = "Use url for blue color";
break;
case Colors.Red:
_url = "Use url for red color";
break;
}
}
}
因此,为了实现这一点,我尝试创建此类,但现在如果我将静态放在下面的类中,一切正常,但我试图使其更加动态,以便我可以从不同的类更改 GetColors 的值到不同的颜色。这样它就可以在上面的类中使用适当的 url。
public class RandomColor //put static here
{
public Colors GetColors { get; set; } = Colors.Black; //put static here
}
你们能帮我解决这个错误吗?
【问题讨论】:
-
您可能需要改写这个?我不理解您的问题,也看不到您要更改属性
type的位置。value是的,但是......我不认为那是你要问的。 -
@zzxyz 请检查已编辑的问题。是的,我正在尝试更改
value。 -
你遇到这个问题是因为你做错了。不要尝试编写自己的日期处理库。使用内置的东西:msdn.microsoft.com/en-us/library/ms973825.aspx
-
@Jasmine 我只是举一个使用“Days”的例子。它可以是任何东西。我的问题是如何更改
DayTesting的值。 -
“我上面提到过不止一个类的 switch 语句” - 巨大的设计缺陷!当您开始不得不在多个地方重复代码时,这表明您的设计不正确。如果这个问题的全部目的是启用那个糟糕的设计选择......那么,好吧,我会按原样留下我的反对意见。