为什么我会收到 系统核心中发生了类型 'System.ArgumentNullException' 的未处理异常.dll



我收到此错误 当我尝试运行程序时,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。

相关内容

最新更新