我刚刚开始学习C#和Microsoft Visual Studio。我刚刚创建了一个带有program.cs文件的C#控制台应用程序项目。我这样修改了内容:
using System;
namespace Calculator
{
class Calculator
{
public static double DoOperation(double num1, double num2, string op)
{
double result = double.NaN; // Default value is "not-a-number" which we use if an operation, such as division, could result in an error
// Use a switch statement to do the math
switch (op)
{
case "a":
result = num1 + num2;
break;
case "s":
result = num1 - num2;
break;
case "m":
result = num1 * num2;
break;
case "d":
// Ask the user to enter a non-zero divisor
if (num2 != 0)
{
result = num1 / num2;
}
break;
// Return text for an incorrect option entry
default:
break;
}
return result;
}
}
class Program
{
static void Main(string[] args)
{
// NewClass obj = NewClass(); //this line is causing problem
bool endApp = false;
// Display title as the C# console calculator app
Console.WriteLine("Console Calculator in C#\r");
Console.WriteLine("------------------------\n");
while (!endApp)
{
// Declare variables and set to empty
string numInput1 = "";
string numInput2 = "";
double result = 0;
// Ask the user to type the first number
Console.Write("Type a number, and then press Enter: ");
numInput1 = Console.ReadLine();
double cleanNum1 = 0;
while (!double.TryParse(numInput1, out cleanNum1))
{
Console.Write("This is not valid input. Please enter an integer value: ");
numInput1 = Console.ReadLine();
}
// Ask the user to type the second number
Console.Write("Type another number, and then press Enter: ");
numInput2 = Console.ReadLine();
double cleanNum2 = 0;
while (!double.TryParse(numInput2, out cleanNum2))
{
Console.Write("This is not valid input. Please enter an integer value: ");
numInput2 = Console.ReadLine();
}
// Ask the user to choose an operator
Console.WriteLine("Choose an operator from the following list:");
Console.WriteLine("\ta - Add");
Console.WriteLine("\ts - Subtract");
Console.WriteLine("\tm - Multiply");
Console.WriteLine("\td - Divide");
Console.Write("Your option? ");
string op = Console.ReadLine();
try
{
result = Calculator.DoOperation(cleanNum1, cleanNum2, op);
if (double.IsNaN(result))
{
Console.WriteLine("This operation will result in a mathematical error.\n");
}
else Console.WriteLine("Your result: {0:0.##}\n", result);
}
catch (Exception e)
{
Console.WriteLine("Oh no! An exception occurred trying to do the math.\n - Details: " + e.Message);
}
Console.WriteLine("------------------------\n");
// Wait for the user to respond before closing
Console.Write("Press 'n' and Enter to close the app, or press any other key and Enter to continue: ");
if (Console.ReadLine() == "n") endApp = true;
Console.WriteLine("\n"); // Friendly linespacing
}
return;
}
}
}
现在,我想在此项目中添加另一个C#文件,并在程序中使用该类,如下所示:
使用系统;
namespace Calculator
{
public class NewClass
{
public NewClass()
{
Console.WriteLine("Hello World");
}
}
}
当我尝试在Program中使用NewClass时,出现了错误。我已将其添加到program.cs所在的文件夹中,但仍未修复。我从link处获得了此解决方案。
所以我的主要问题是:
编辑:我应该发布确切的错误。 因此,当我尝试运行该程序时,它会显示:
1>------ Build started: Project: ConsoleApp1, Configuration: Debug|AnyCPU ------
C:\Users\<SystemName>\Source\Repos\<UserName>\C-sharp-Practice-Codes\ConsoleApp1\ConsoleApp1\Program.cs(42,28,42,36): error CS1955: Non-invocable member 'NewClass' cannot be used like a method.
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
为什么NewClass()无法朗诵?
答案 0 :(得分:1)
如何在c#中使用同一文件夹中的其他类(就像在Java中一样,如果两个程序位于同一文件夹中,则它们被视为在同一程序包中,并且无需任何import语句就可以使用。在这种情况下可以做到?)
您刚刚错过了new
运算符。您与NewClass
的一行应如下所示:
NewClass obj = new NewClass();
在new operator docs page中了解有关new
运算符的更多信息。
这与当前主题无关,但是我们可以在Microsoft Visual Studio中创建一个仅包含一些C#文件的文件夹的项目吗?(更具体地说,我只想像在普通IDE中一样编写C#代码,不创建任何项目怎么办?)
您可以通过以下两种方法来做到这一点: