3

並べ替えと表示を簡単にするために、いくつかの文字列プロパティを1つの文字列に結合したいと思います。クラスのコレクションまたはリストを反復処理せずにこれを行う方法があるかどうか疑問に思いました。以下のPersonクラスのFullNameのようなもの。

public class Person
{
    public string Last {get;set;}
    public string First {get;set;}

    public string FullName = Last + ", " + First {get;}
}
4

8 に答える 8

9

次のようにクラスを更新します。

public class Person
{
    public string Last { get; set; }
    public string First { get; set; }

    public string FullName 
    { 
        get 
        { 
            return string.Format("{0}, {1}", First, Last); 
        } 
    }
}

ToString()ほとんどのUIテクノロジでは、オブジェクトを表示するデフォルトの方法としてこれを使用するため、質問に加えて、メソッドのオーバーライドを実装することもお勧めします(質問では表示を簡単にすることに言及しています)。

public override string ToString()
{
    return FullName;
}
于 2012-09-23T16:41:07.157 に答える
3
public string FullName {
  get{
    return Last + ", " + First;
  }
}
于 2012-09-23T16:41:05.390 に答える
3

もちろん:

public string FullName 
{
    get
    {
        return FirstName + ", " + LastName;
    }
}
于 2012-09-23T16:41:06.963 に答える
2

なぜだめですか?

public string FullName
{
    get { return Last + ", " + First; }
}
于 2012-09-23T16:41:10.857 に答える
1

これを試して:

  public string FullName 
     {
          get
            {
                return Last + " " + First;    
            }        
      }
于 2012-09-23T16:41:55.727 に答える
1
public string Fullname
{
    get
    {
        return string.Format("{0}, {1}", Last, First);
    }
    set
    {
        string[] temp = value.Split(',');
        Last = temp[0].Trim();
        First = temp[1].Trim();
    }
}
于 2012-09-23T16:42:23.683 に答える
1

はい。クラスのプロパティを使用して同じことを行うことができます。Microsoftでさえ、クラスのフィールドをメソッドではなくプロパティとして単純な操作を行うだけのvoidメソッドをクラスに作成することをお勧めします。

于 2012-09-23T16:45:18.830 に答える
0

簡単でシンプルなので、文字列補間を使用します;)

    public class ApplicationUser
    {
        public string FirstName { get; set; }
        public string LastName { get; set; }


        public string FullName
        {
            get
            {
                return $"{FirstName} {LastName}";
            }
        }
    }
于 2020-10-18T10:56:42.230 に答える