在 C# => 在控制台应用程序中执行类库
Posted
技术标签:
【中文标题】在 C# => 在控制台应用程序中执行类库【英文标题】:In C# => Executing Class Library in Console Application 【发布时间】:2019-01-21 17:25:18 【问题描述】:我希望创建一个菜单驱动程序,该程序将根据某些方面(比如操作员或任何其他事物)进行分类。
我创建了一个控制台应用程序项目并将“sample”作为命名空间。 在示例中,我在 Main() 中创建了一个菜单
public static void Main()
Console.Clear();
Console.WriteLine("\nMenu Driven Program");
Console.WriteLine("\n<--------List of Available Options-------->");
//Creating a list to Select from
Console.WriteLine("\n Select Any of the Following Function :");
Console.WriteLine("\n_________________________________________");
Console.WriteLine("\n1. Arithmatic Operators\n2. Logical Operators");
Console.WriteLine("\n3.Misc1\n4. Misc2");
//Accepting a normal string
string b = Console.ReadLine();
int d;
// Following converts string into an integer
Int32.TryParse(b, out d);
//Following code is used to create menu-driven program
switch (d)
case 1:
//Here I wish to call one class library
break;
case 2:
//Here I wish to call another class library
break;
//And so on.
default:
Console.WriteLine("\n\nWhat you wish to do?\na. Continue the Program\n\nb. Exit the Program");
char c = Convert.ToChar(Console.ReadLine());
if(c=='a'||c=='A')
Main();
else
Exit();
break;
现在,我创建了一个类库,我将在其中存储三个类(让我们考虑一下)递增、除法和乘法。
但是,我无法调用该类库。 当我在 Switch "Case" 中直接输入类库的名称时,它给了我 CS0118 错误,指出 "Sample" 只是一个命名空间,但用作变量。
在我的类库中,我创建了三个不同的类和一个 Main() 这将显示可用操作的列表。 例如,如果算术运算符,那么类库中的 Main 将包括加法、减法、乘法等。
【问题讨论】:
你的库中的类是什么样的,你是如何尝试调用它的?如果您包含导致错误的行会有所帮助namespace Sample class MyClass public static void Main() ...
- 不要忘记声明class
; Main
应该是在类中。
可能相关:***.com/questions/15007727/… 和 blogs.msdn.microsoft.com/ericlippert/2010/03/09/…
请包括一个被注释掉的类调用的样子......
OP,你不能“调用类库”。您唯一可以调用的是方法。该方法可能属于库中包含的类。如果您所写的只是名称空间,那将无济于事。
【参考方案1】:
CS0118 错误指出“Sample”只是一个命名空间,但用作变量
当您尝试创建命名空间的实例或以其他方式使用命名空间时,会发生错误 CS0118,就像它是类的实例一样。请参阅this documentation post 了解更多信息。
根据您的描述,我的假设是您需要根据用户选择的内容调用 3 个类中的每个类中的 main。考虑以下代码...
switch(d)
case 1:
Sample.Class1.Main();
break;
case 2:
Sample.Class2.Main();
break;
case 3:
Sample.Class3.Main();
break;
default:
// default processing here
这是假设您的命名空间名为 Sample,并且方法在您的库中的类中定义为静态。
【讨论】:
谢谢。它解决了有关问题。正如你的名字一样,你确实是“很棒”。【参考方案2】:您需要添加对类库项目的引用。我假设您在相同的解决方案中创建了它们。确保两者的工作相同。网络版说4.6。 要添加引用,请展开项目资源管理器,查找引用,右键单击并选择添加,然后找到类库并选中复选框。 如果您安装了生产力工具 Resharper,它可以更快地修复这些问题。
【讨论】:
实际上,我确实添加了引用,我只是想从类库中调用 Main()。我使用了“Fabulous”提供的解决方案,我将其标记为“Answer”。感谢您的回复。以上是关于在 C# => 在控制台应用程序中执行类库的主要内容,如果未能解决你的问题,请参考以下文章
C#控制台程序的参数解析类库 CommandLine简单使用说明