0
public applybuttonform(string s)
{
    InitializeComponent();
    passingid.Text = s;   
}

これをやろうとすると例外が発生します

NullReferenceEexception は処理されませんでした

public applybuttonform(string s)
{
    InitializeComponent();
    if(string.IsNullOrEmpty(s))
    {
       passingid.Text = s;
    }         
}

これを行ってもエラーは発生しませんが、別のフォームから渡された文字列「s」を使用する必要があるため、問題は解決しません。それで、私は今何ができますか?

4

3 に答える 3

4

あなたのpassingid変数はnullです。2 番目のバージョンではエラーはなくなります。これは実際にはそれsが null または空であることを確認しているためですpassingid.Text

TextBox passingid;
passingid.Text = s;

その時点で passid が null であるため、エラーが発生します。

TextBox passingid = new TextBox();
passingid.Text = s;

うまくいきます。

于 2013-07-24T21:10:37.590 に答える
1

Well, you probably want

if(!string.IsNullOrEmpty(s))
{
   passingid.Text = s;
} 

But that's just a guess. You might want to edit your question with the entirety of the exception, including which statement is generating the exception.

于 2013-07-24T21:09:35.760 に答える
0

以下のコードを検討してください。

public class PassingID2
{
    private string _Text = null;
    public string Text
    {
        get { return _Text; }
        set { if (_Text.Length <= 0) _Text = value; }
    }
}
public class PassingID1
{
    public string Text { get; set; }
}

次に、コード内の別の場所:

string s = string.Empty;

PassingID1 passingid1;
passingid1.Text = s; //This will cause a NullReferenceException because passingid1 is null

PassingID2 passingid2 = new PassingID2();
passingid2.Text = s; //This will cause a NullReferenceException because _Text is null

ご覧のとおり、どちらの場合も例外が発生します。

また、問題は「s」ではないことに注意してください

于 2013-07-24T21:36:40.327 に答える