1

私はC#が初めてで、それをいじっていて、メソッドから有用なものを返すことに行き詰まりました。どんな助けでも素晴らしいでしょう。

私は今これを持っています:

Form1.cs:

Animal NewAnimal = new Animal("Jack", "Ramp");

Animal.cs

public Animal(string Fname, string Lname)
        {
            if (Fname == "Jack" | Lname == "Ramp")
            {
                string FullName;
                FullName = Fname + " " + Lname;
                //return FullName; <--- This is what i tried but didn't work--->
            }
        }
        //return FullName; <--- And Also tried this it didn't work --->

多分私が試したものから、私は何か間違ったことをしていますか?FullName を Form1.cs に返してラベルに表示するにはどうすればよいですか?

4

6 に答える 6

5

次のようなものが必要です。

public class Animal
{
    public Animal(string fName, string lName)
    {
        this.FName = fName;
        this.LName = lName;
    }
    public string FName {get;set;}
    public string LName {get;set;}
    public string FullName
    {
        get
        { 
            return String.Format("{0} {1}", FName,LName);
        }
    }
}
于 2013-09-21T01:58:54.270 に答える
2

コンストラクタから値を返そうとしています...

代わりにメソッドを定義してください。

public string FullName(string Fname, string Lname)
{
if (Fname == "Jack" || Lname == "Ramp")
   {

                return Fname + " " + Lname;

    }

return "";

}
于 2013-09-21T01:56:33.197 に答える
2

あなたが持っているメソッドは a と呼ばれますConstructor。オブジェクトの新しいインスタンスを作成するときに呼び出されます。定義には戻り値の型はありませんが、オブジェクトの新しいインスタンスを「返します」(実際には制御できませんが)。

あなたが期待しているのは、値を返す別のパブリック メソッドまたはプロパティを持つことです。

public class Animal
{
    public string Fullname {get; set;}

    public Animal(string Fname, string Lname)
    {
        if (Fname == "Jack" || Lname == "Ramp")
        {
            FullName = Fname + " " + Lname;
        }
}

次に、以下を使用します。

Animal NewAnimal = new Animal("Jack", "Ramp");
var firstName = NewAnimal.FullName;
于 2013-09-21T01:56:47.127 に答える
1

Yaurの答えは機能しますが、あなたが求めているように見えるものに近づくために、私はそれを行います(注:これはYaurのコードの変更です)

public class Animal
{
    public Animal(string fName, string lName)
    {
        this.FName = fName;
        this.LName = lName;
    }
    public string FName {get;set;}
    public string LName {get;set;}
    public override string ToString()
    {
        return String.Format("{0} {1}", FName,LName);
    }
}
于 2013-09-21T02:29:14.493 に答える
0

コンストラクターから何かを返すことはできません。このように、プロパティまたはパブリックフィールドを宣言できます

class Animal {

public:
   string FullName;
    .....
}

FullNameでアクセスできますNewAnimal.FullName

于 2013-09-21T01:55:25.243 に答える