2017-11-18 7 views
1

複数のパラメータを返そうとしています。私はPythonコードをC#に "翻訳"しようとしています。複数のパラメータを返す

実際に私が探している正確な用語はわかりませんが、私はPythonでそれを行う方法を知っていますので、コードを表示します。

class Staff 
{ 
    public String name; 
    public int age; 

    /* Now in Python, you can easily write this following, but I have no 
     idea how this works in C#. I basically want to return all the values 
     for each employee in the "Staff" class */ 

    def desc(self): 
     desc_str = "%s is %s years old." % (self.name, self.age) 
     return desc_str 

} 

class Program 
{ 
    public static void Main() 
    { 
     Staff Jack = new Staff(); 
     Jack.name = "Jack"; 
     Jack.age = 40; 

     Staff Jill = new Staff(); 
     Jill.name = "Jill"; 
     Jill.age = 50; 

     Console.WriteLine(Jack.desc()); 
     Console.WriteLine(Jill.desc()); 
     Console.ReadKey(); 
    } 
} 

編集:私は私が探していたが、取得セットとのToString()、今そこになりますたことを考え出しました。 私は今、次のようなルックスを翻訳したコード:

class Staff 
{ 
    private string name; 
    private int age; 
    private string yearsold = " years old."; 

    public string Name 
    { 
     get 
     { 
      return name; 
     } 
     set 
     { 
      name = value; 
     } 
    } 

    public int Age 
    { 
     get 
     { 
      return age; 
     } 
     set 
     { 
      age = value; 
     } 
    } 

    public string YearsOld 
    { 
     get 
     { 
      return yearsold; 
     } 
     set 
     { 
      yearsold = value; 
     } 
    } 


    public override string ToString() 
    { 
     return "Employee " + Name + " is " + Age + YearsOld; 
    } 
} 

class TestPerson 
{ 
    static void Main() 
    { 
     // Create a new Person object: 
     Staff person = new Staff(); 

     person.Name = "Jack"; 
     person.Age = 40; 
     Console.WriteLine(person); 

     person.Name = "Jill"; 
     person.Age = 50; 
     Console.WriteLine(person); 

     Console.ReadKey(); 
    } 
} 
+0

python関数で識別子を修正してください。 –

+0

@Ender Look:質問にPythonコードはありません。 – martineau

+0

@martineau、ああ、私はコードをすばやく見て、私は 'def'で始まった部分がPythonコードだと思った、残念だ。また、私はまだそれが少なくとも3行だと思っています。 –

答えて

1

クラスを持っているので、あなたがToString機能を無効にし、そのようなstring.Format機能を使用することができます:プリントに続いて

class Staff 
{ 
    public string name; 
    public int age; 

    public Staff(string _name, int _age) 
    { 
     this.name = _name; 
     this.age = _age; 
    } 

    public override string ToString() 
    { 
     return string.Format("{0} is {1} years old.", this.name, this.age); 
    } 
} 

を:

Staff Jack = new Staff("Jack", 40); 
Console.WriteLine(Jack); // implicitly calls Jack.ToString() 

希望します。

+0

これは私が書いたものよりも短く、読みやすいように見えます。大変ありがとう! –

関連する問題