[英]C# pass enum “name” and enum value to method
我在 C# atm 中做 Einstein-Riddle 并遇到了一个问题。 我正在尝试使用枚举来做到这一点。 我有一个名为 House 的结构。 在 House 中,有诸如 Nationality、Color、Animal 之类的枚举......我在 House 中创建了所有可能的解决方案,并希望删除带有提示的内容(以单独的方法)。
提示#1:英国人住在红房子里。 现在我必须将 Nationality 作为枚举传递,将 Nationality.British 作为值传递,将 Color 作为枚举传递,将 Color.Red 作为值传递。
这个怎么做? 我只想调用我的方法 -
CheckLine(Nationality.British, Color.Red);
但是要放入参数列表中的内容:
static void CheckLine(? )
这是我的结构和枚举
public enum Nationalitaet { Däne, Brite, Deutscher, Norweger, Schwede };
public enum Farbe { rot, blau, grün, weiß, gelb };
public enum Zigarette { Dunhill, Marlboro, PallMall, Rothmans, Wingfield };
public enum Tier { Pferd, Fisch, Katze, Vogel, Hund };
public enum Getraenk { Wasser, Kaffee, Milch, Tee, Bier };
struct Haus
{
public int HausNr { get; set; }
public Nationalitaet Nationalitaet { get; set; }
public Farbe Farbe { get; set; }
public Zigarette Zigarette { get; set; }
public Tier Tier { get; set; }
public Getraenk Getraenk { get; set; }
}
我在 CheckLine 中有一个包含所有解决方案(称为解决方案)的列表
if (solution[i].Nationalitaet == Nationalitaet.British && solution[i].Farbe == Farbe.Red)
solution.RemoveAt(i)```
正确的签名是:
static void CheckLine(Nationality nationality, Color color) { }
枚举类型(例如Nationality
)可以像任何其他类型一样使用,类似于您使用int
或string
的方式。
参数的名称( nationality
、 color
)当然可以自由选择,但一般来说最合适的名称与枚举类型本身的名称相匹配。
问题中没有足够的信息来判断它是否应该是static
,或者该方法是否应该返回void
。 这个答案只关注方法的输入参数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.