如何解决“问题”;cs0029“;C#程序中的错误?

如何解决“问题”;cs0029“;C#程序中的错误?,c#,C#,这是我的代码,我找不到问题。我不明白它到底出了什么差错 使用制度 class MainClass { public static void Main (string[] args) { var Number = 0; while ((Number < 1) | (Number > 10)) {   Console.WriteLine("Enter a positive whole number: ");   Number = Console.Read

这是我的代码,我找不到问题。我不明白它到底出了什么差错

使用制度

class MainClass {
  public static void Main (string[] args) {
    var Number = 0;
while ((Number < 1) | (Number > 10))  {
  Console.WriteLine("Enter a positive whole number: ");
  Number = Console.ReadLine();
  if (Number > 10) {
    Console.WriteLine("Number too large.");
  } else {
    if (Number < 1) {
      Console.WriteLine("Not a positive number.");
    }
  }
}
var c = 1;
for (int k = 0; k < Number - 1; k++) {
  Console.WriteLine(c);
  c = (c * (Number - 1 - k)) % (k + 1);
}
;
  }
}
class类main类{
公共静态void Main(字符串[]args){
var数=0;
而((数<1)|(数>10)){
  WriteLine(“输入一个正整数:”);
  Number=Console.ReadLine();
  如果(数量>10){
    Console.WriteLine(“数字太大”);
  } 否则{
    如果(数字<1){
      Console.WriteLine(“不是一个正数”);
    }
  }
}
var c=1;
对于(int k=0;k
我可能会说您有一个类型错误,当您输入一个输入时,您会收到一个“字符串”,然后您试图将它与C#中不等价的“int”类型进行比较,因此您必须将输入转换为“int”

顺便说一句,如果您试图在输入中写入“字符串”,那么这样做可能会出现另一个错误

无法将类型“type”隐式转换为“type”

您正在尝试将
字符串
转换为
int
。它们是完全不同的类型。但是,有一些方法可以将
字符串
解析为
int
,因为这是用户输入,最好的方法就是这种方法

将数字的字符串表示形式转换为其32位有符号 等效整数。返回值指示操作是否 成功

var编号=0;
而((数<1)|(数>10))
{
WriteLine(“输入一个正整数:”);
如果(!int.TryParse(Console.ReadLine(),out number))
WriteLine(“您甚至没有输入数字”);
否则,如果(数量>10)
Console.WriteLine(“数字太大”);
否则如果(数字<1)
Console.WriteLine(“不是一个正数”);
}
另一种方法是合并检查

var number = 0;
Console.WriteLine("Enter a positive whole number between 1 and 10 : ");
while (!int.TryParse(Console.ReadLine(), out number) || number > 10 || number <= 0)
   Console.WriteLine("You failed, try again");

Console.WriteLine(number);
var编号=0;
WriteLine(“输入一个介于1和10之间的正整数:”);

虽然(!int.TryParse(Console.ReadLine(),out number)| | | number>10 | | | | | number错误消息是什么?行号/stacktrace等在这里会有帮助。乍一看,我怀疑
(number<1)|(number>10)
是否有意-应该是
(number<1)| |(number>10)
?您的问题与.Console.ReadLine()重复返回一个字符串,您无法将字符串与int(在if中)进行比较。您必须使用int.Parse()将Console.ReadLine return转换为int。
var number = 0;
while ((number < 1) | (number > 10))
{
   Console.WriteLine("Enter a positive whole number: ");
   if (!int.TryParse(Console.ReadLine(), out number))
      Console.WriteLine("You didn't even enter a number");
   else if (number > 10)
      Console.WriteLine("Number too large.");
   else if (number < 1)
      Console.WriteLine("Not a positive number.");
}
var number = 0;
Console.WriteLine("Enter a positive whole number between 1 and 10 : ");
while (!int.TryParse(Console.ReadLine(), out number) || number > 10 || number <= 0)
   Console.WriteLine("You failed, try again");

Console.WriteLine(number);