2017-01-07 3 views
-1

Schule fragt mich, die öffentliche Überschreibung Zeichenfolge verwenden. Ich möchte so etwas haben:Öffentliche Überschreibung Zeichenfolge mehr zurück

lbl_Name.Text = ToString(*Field: Naam from class Gebruikerklasse*) 
lbl_Surname.Text = ToString(*Field: Achternaam from class Gebruikersklasse*) 

ich in meiner Klasse mehrere Felder haben, aber ich möchte nur ein paar von ihnen zurückzukehren. Benötige ich andere Methoden oder kann ich das mit nur einer Methode und mehr mit einigen if-Anweisungen und booleans tun?

Das ist, was ich habe jetzt:

using System; 
    using System.Collections.Generic; 
    using System.Linq; 
    using System.Text; 
    using System.Threading.Tasks; 

    namespace BurnThatFat 
    { 
     class Gebruikerklasse 
     { 
      public string Naam; 
      public string Achternaam; 
      public int Leeftijd; 
      public string Geslacht; 
      public int Huidiggewicht; 
      public int Streefgewicht; 
      public string Gebruikersnaam; 
      public string Wachtwoord; 

      public override string ToString() 
      { 
       return Naam; 

      } 
// I want to use the same method again but this time for another field. 


public override string ToString() 
     { 
      return Gebruikersnaam; 
     } 

    } 

} 
+0

* Unklar, was Sie * –

+0

tun wollen Und wenn Sie es jetzt lesen? @ L.B – Gigitex

+1

Es ist klar, dass Sie Compiler herausfinden möchten, was Sie ohne sinnvolle Anweisungen tun wollen ... Aber wenn Sie einen bekommen würden, warum sogar so viel Code schreiben? :) Vielleicht möchten Sie auf "C# Methode Überladungen" lesen, um zu sehen, was in der Sprache sinnvoll ist. –

Antwort

1

Ich schlage vor, die Umsetzung IFormattable Schnittstelle:

class Gebruikerklasse { 
     ... 

     // "A" - Achternaam 
     // "G" - Gebruikersnaam 
     // "N" - Naam 
     // null, empty - default ToString format 
     public string ToString(string format, IFormatProvider formatProvider) { 
     if (string.IsNullOrEmpty(format)) 
      return ToString(); 
     else if ("N".Equals(format, StringComparison.OrdinalIgnoreCase)) 
      return Naam; 
     else if ("A".Equals(format, StringComparison.OrdinalIgnoreCase)) 
      return Achternaam; 
     else if ("G".Equals(format, StringComparison.OrdinalIgnoreCase)) 
      return Gebruikersnaam; 
     else 
      throw new FormatException($"Unknown format '{format}'"); 
     } 

     public string ToString(string format) { 
     return ToString(format, CultureInfo.CurrentCulture); 
     } 

     public override string ToString() { 
     return Gebruikersnaam; 
     } 
    } 

Und so können Sie setzen:

Gebruikerklasse instance = new Gebruikerklasse(); 

    lbl_Name.Text = instance.ToString("G"); 
    lbl_Surname.Text = instance.ToString("A"); 
1
using System; 

namespace BurnThatFat 
{ 
    class Program 
    { 
     static void Main() 
     { 
      var g1 = new Gebruikerklasse1() { Naam = "Duncan", Geslacht = "Male", Huidiggewicht = 75, Gebruikersnaam = "DCarr" }; 
      var g2 = new Gebruikerklasse2() { Naam = "Duncan", Geslacht = "Male", Huidiggewicht = 75, Gebruikersnaam = "DCarr" }; 

      Console.WriteLine(g1); 
      Console.WriteLine(g2); 

      Console.ReadKey(); 
     } 
    } 

    class Gebruikerklasse1 
    { 
     public string Naam; 
     public string Achternaam; 
     public int Leeftijd; 
     public string Geslacht; 
     public int Huidiggewicht; 
     public int Streefgewicht; 
     public string Gebruikersnaam; 
     public string Wachtwoord; 
    } 

    class Gebruikerklasse2 
    { 
     public string Naam; 
     public string Achternaam; 
     public int Leeftijd; 
     public string Geslacht; 
     public int Huidiggewicht; 
     public int Streefgewicht; 
     public string Gebruikersnaam; 
     public string Wachtwoord; 

     public override string ToString() 
     { 
      return string.Format("{0} - {1} - {2} - {3}", Gebruikersnaam, Geslacht, Huidiggewicht, Naam); 
     } 
    } 
} 

Ausgang ist:

BurnThatFat.Gebruikerklasse1 
DCarr - Male - 75 - Duncan 

heißt

"g1" outputs default class-to-string output 
"g2" outputs overriden format - which can include any members you like 

Sorry, wenn ich falsch verstanden.