如何在C#中检测应用程序是控制台模式还是窗口模式

3
有没有一种方法可以在应用程序内部检查程序是在控制台模式还是窗口模式下运行?我知道Read和ReadLine可以某种程度上检测到此,但具体如何实现呢?
1个回答

7

您应该能够检查Console.In == StreamReader.Null;

如果这是真的,那么没有控制台连接。例如,以下内容可以正常工作:

public static bool IsConsoleApplication
{
    get { return Console.In != StreamReader.Null; }
}

@ArlenBeiler 你是指作为一个属性吗?你能展示一下你想要的代码,用法方面的吗?我可以向你展示如何使其工作... - Reed Copsey
是的,使用方法有什么特别的原因吗? - Arlen Beiler
@ArlenBeiler 不是很重要 - 我把它设为属性了。我只是想给你展示实际的代码作为一个例子 ;) - Reed Copsey
1
@ArlenBeiler 如果涉及到“计算”,我总是使用方法 - 而且通常如果要检查的类型是外部的话也会这样做。这只是暗示着方法内部有“某些事情”正在发生。在这种情况下,属性是完全适当的,因为像这样的单个比较检查实际上是免费的。我认为我倾向于使用方法,因为我在另外两个完全不相关的类中检查属性 - 但在这里使用属性也可以。 - Reed Copsey

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接