我收到此错误 当我尝试运行程序时,System.Core 中发生了类型为"System.ArgumentNullException"的未处理异常.dll。它给了我一些建议,例如"在调用方法之前确定对象为 null"和"使用"new"关键字创建对象实例"。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
class Program
{
protected static string userString { get; set; }
public virtual void GetUserString()
{
Console.WriteLine("Enter a string of letters: ");
userString = Convert.ToString(Console.ReadLine());
}
class ProgramOrder : Program
{
public virtual void SetOrder()
{
bool moveOn = userString.All(Char.IsLetter); //Error here
base.GetUserString();
if (moveOn == true)
{
char[] array = userString.ToCharArray();
for (int i = array.Length - 1; i >= 0; i--)
{
Console.Write("{0}", array[i]);
}
}
else
{
Console.WriteLine("You used characters that are not letters.");
Console.WriteLine("Please use ONLY letters.");
SetOrder();
}
}
}
class TestProgram
{
static void Main(string[] args)
{
ProgramOrder P1 = new ProgramOrder();
P1.SetOrder();
Console.WriteLine("Press any key to continue...");
Console.ReadLine();
}
}
}
}
先打电话base.GetUserString
然后检查你的字母:
base.GetUserString();
bool moveOn = userString.All(Char.IsLetter);
您的用户字符串在您尝试访问它的那一刻为空。
您可以先检查 null,也可以分配一个默认值,如 string.empty。