加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C#:通过变量引用类

发布时间:2020-12-16 00:03:10 所属栏目:百科 来源:网络整理
导读:我试图在C#中使用变量,但是遇到了障碍.以下不起作用. public static void SetBG(string s){ Console.BackgroundColor = ConsoleColor.s;} 一个非常简单的方法,应根据程序员通过s变量发送的内容设置控制台的背景颜色.如果我使用SetBG(“红色”);它应该通过,但
我试图在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语句检查字符串的内容,并在匹配颜色名称时指定适当的颜色.
幸运的是,有一种更简单的方法.您可以简单地将字符串解析为ConsoleColor!

在the example from MSDN之后,你可以这样做:

Console.BackgroundColor = (ConsoleColor) Enum.Parse(typeof(ConsoleColor),s);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读