2016-04-17 30 views
-2

Ich habe diese Schnittstelle am Anfang gegeben. Es gibt eine Reihe von Funktionen, die ich implementieren muss.Wie würde ich den Wert für diese Variable setzen?

using System; 
using System.Windows.Forms; 
public interface IInfoCard 
{ 
    string Name { get; set; } 
    string Category { get; } 
    string GetDataAsString(); 
    void DisplayData(Panel displayPanel); 
    void CloseDisplay(); 
    bool EditData(); 
} 

Wie würde ich die folgende Funktion in die Schnittstelle implementieren.

class Class2 : IInfoCard 
    { 
    public string Name 
     { 
      get 
      { 
       throw new NotImplementedException(); 
      } 

      set 
      { 
       throw new NotImplementedException(); 
      } 
     } 
+0

Die Implementierung Ihnen als, wie Sie wollen, dass es sein können, ist, nach oben. –

+0

Verwandte - http://programmers.stackexchange.com/questions/161166/should-i-prefer-properties-with-o-without-private-fields –

Antwort

0

sollten Sie verwenden dann Abstract Klassen, keine Schnittstellen, dann.

public abstract class IInfoCard 
{ 
    string Name { get; set; } 
    string Category { get; } 
    string GetDataAsString() { return null; } 
    void DisplayData(Panel displayPanel) {} 
    void CloseDisplay() {} 
    bool EditData() { return true;} 
} 
0

Sie versuchen, eine Eigenschaft zu implementieren. Sie können ein Feld grundsätzlich kapseln. Eine einfache Möglichkeit, das zu tun, ist mit auto-property:

public string Name { get; set; } 
0

Sie haben zwei Möglichkeiten.

Option 1:

Machen Sie ihnen Auto Eigenschaften, wobei in diesem Fall Compiler eine eigene, anonyme dahinter liegende Feld erzeugt.

public string Name {get;set}; 

Option 2

definieren explizite Unterstützung Feld, ein eigenes Feld.

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

Versuchen Sie, diese

public class Class2 : IInfoCard 
    { 
    private string _name; 
    public string Name 
     { 
      get 
      { 
       return _name; 
      } 

      set 
      { 
       _name = value; 
      } 
     } 
} 
0

Sie Auto-Implementiert Eigenschaften

public class Class2 : IInfoCard 
{ 
    public string Name { get; set;} 
} 

See More

Verwandte Themen