0

****以下は、クラス内に 1 つのパラメーター コンストラクターを持つ私の winform クライアント inst です。****

    private void button1_Click(object sender, EventArgs e)
    {

        string s1 = textBox1.Text;
        int x1 =  Convert.ToInt32(s1);
        int X= x1;        
       ExternalTest ob =  new ExternalTest(X);                 
       string s2 = Convert.ToString(ob.Y);              
        ob.Y = 0;
       textBox2.Text = s2;

この下は、プロジェクトに追加した クラスです。下のコードは、アセンブリ内に追加されたクラスです。クラス ライブラリにして addreference を追加しようとすると、ビルドされません。

class ExternalTest       
{      
            private int _x;
       //     protected new int x
       //     {
       //        get { return _x; }
       //        set  {_x = value ;}
       //     }
             private int y;
             public  int Y 
            {                 
              get {return y =  Mult(_x); }
              set { }
            }        
                internal   int Mult(int _x)
              {                       
              y = _x + 51;   
               return  y;         
               }    

            public ExternalTest(int X)
           {
               _x =  X;             

           }            

      }
}
4

1 に答える 1

1

あなたのクラスはpublicデフォルトではありません。publicクラスを外部ライブラリで使用する場合は、クラスの定義に追加する必要があります。そうしないと、WinForms クライアントがクラスを表示できなくなります。

例えば:

public class ExternalObj
{
    // ... 
}

publicこのクラスが外部ライブラリにある場合にのみコンパイル エラーが発生するという事実と、自分で必要なときに追加するのを何度も忘れているという事実に基づいて、これがおそらく問題であると考えています。

于 2010-07-06T19:00:26.317 に答える