C#:通过变量引用类
我试图在C#中使用变量,但是遇到了障碍.以下不起作用.
public static void SetBG(string s) { Console.BackgroundColor = ConsoleColor.s; } 一个非常简单的方法,应根据程序员通过s变量发送的内容设置控制台的背景颜色.如果我使用SetBG(“红色”);它应该通过,但它不会.这是因为System.ConsoleColor’不包含’s’的定义. 我怎么能在C#中做到这一点? 解决方法
这不是正确的方法,看起来你有两个主要概念,理解它们将帮助你正确地做到这一点.
首先,s是当前类中的变量. ConsoleColor.s会引用ConsoleColor类中的s变量(它没有一个,因此你的错误).这称为scope或encapsulation,允许我们重用常见的单词/名称而不会发生冲突. 其次,您的代码将在运行之前进行编译,而ConsoleColor.s(假设有这样的东西)将不再说ConsoleColor.s.相反,它将指向存储器中存储表示“s”的值的位置.传递给您的方法的s将是一个字符串,例如“Red”或“Blue”.这样的字符串和内存中的插槽之间没有连接,以便不同的对象存储它的值. 要执行您要执行的操作,您需要获取颜色的名称并将其转换为颜色.一种方法是使用一系列if / else语句检查字符串的内容,并在匹配颜色名称时指定适当的颜色. 在the example from MSDN之后,你可以这样做: Console.BackgroundColor = (ConsoleColor) Enum.Parse(typeof(ConsoleColor),s); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |