none
未将对象引用设置到对象的实例(含代码) RRS feed

  • 问题

  •   class Program
        {
            static void Main(string[] args)
            {

                Push("dsa");
      
            }
            private static int location = 0;//后缀表达式的各个位置
            public static int Location
            {
                get { return location; }
                set { location = value; }
            }

            private static string[] expression;//后缀表达式各个位置的值
            public static string[] Expression
            {
                get { return expression; }//注意写法
                set { expression = value; }
            }

            public static void Push(string record)
            {
                Expression[Location] = record;//未将对象引用设置到对象的实例?????
                location++;
            }
           
        }

    运行时显示“将对象引用设置到对象的实例。”

    2011年9月27日 11:49

答案

  • 你好

    這是因為你沒有初始化你的 expression String Array

    E.G.

    private static string[] expression;//后缀表达式各个位置的值


     

    或者你可以嘗試初始化你的 expression String Array

    E.G.

    private static string[] expression = new string[100];//后缀表达式各个位置的值 [Array Size of 100]


    Please correct me if my concept is wrong

     


    Chi
    2011年9月27日 12:20
    版主

全部回复

  • 你好

    這是因為你沒有初始化你的 expression String Array

    E.G.

    private static string[] expression;//后缀表达式各个位置的值


     

    或者你可以嘗試初始化你的 expression String Array

    E.G.

    private static string[] expression = new string[100];//后缀表达式各个位置的值 [Array Size of 100]


    Please correct me if my concept is wrong

     


    Chi
    2011年9月27日 12:20
    版主
  • OH,非常感谢!

    为什么 不能用private static string[] expression = null;

    2011年9月27日 13:24
  • 你好

    這是因為

     string[] expression = null; 時

    其實和沒有定義一樣的

    E.g. expression 會是 null 

    所以便會有 未将对象引用设置到对象的实例?

    Please correct me if my concept is wrong


    Chi
    2011年9月27日 13:51
    版主
  • 那是不是只要是数组,不管什么类型,都要用new来实现,并要定义长度?
    2011年9月27日 14:31
  • 你好
    其實是每定義一個變數
    最理想的是能初始化他們
    如果是使用數組的話
    你要預先知道数组的大小 才可以初始化他們的
    otherwise 會有 Index out of bound exception
    或者可以考慮選擇使用 List<>
    之後便可以用
    List.Add()去解決不知道 數組的大小的問題了
    詳情可以參考以下URL
    http://msdn.microsoft.com/zh-cn/library/6sh2ey19.aspx
    Please correct me if my cocept is wrong

    Chi
    2011年9月27日 15:12
    版主
  • 如果写成private int[] s=new int[]{0};

    它是不是会根据需要自动确定数组长度的?

    2011年9月28日 1:48