C#

2016-04-07 9 views
1

dizinleyicileri için kısayol C# içinde bir sınıfta bir dizinleyici kullanıyorum, ancak dizinleyiciler oluşturmak için varsayılan olarak bir kısayol olup olmadığını merak ediyorum (örneğin 'cw sekme sekmesi' Console.WriteLine() için). Bunun olup olmadığını bilen var mı? peşinC#

public string SurName { get; set; } 
public string FirstName { get; set; } 
public string Birthplace { get; set; } 

public string this[int index] 
{ 
    set 
    { 
     switch (index) 
     { 
      case 0: 
       this.SurName = value; 
       break; 
      case 1: 
       this.FirstName = value; 
       break; 
      case 2: 
       this.Birthplace = value; 
       break; 
      default: 
       throw new ArgumentOutOfRangeException("index"); 
     } 
    } 
    get 
    { 
     switch (index) 
     { 
      case 0: return this.SurName; 
      case 1: return this.FirstName; 
      case 2: return this.Birthplace; 
      default: 
       throw new ArgumentOutOfRangeException("index"); 
     } 
    } 
} 

Teşekkür:

İşte sınıfı 'Kişi' için (dizinleyicideki ile) benim kod!

-Jeremy

+3

Kod parçacığı dizinleyici olarak adlandırılır, ind + sekme + sekmesi veya hatta + sekme + sekmesi yazarak kullanabilirsiniz (intellisense'de işaretlendiği anda)) –

cevap

5

Visual C# Code Snippets itibaren dizin

Bir dizinleyici beyanı oluşturur.

Bir sınıf veya yapı içinde. Yani

enter image description here

, tip ind ve Tab iki kez çarptı. Bu üretir;

public object this[int index] 
{ 
    get { /* return the specified index here */ } 
    set { /* set the specified index to value here */ } 
} 

Ancak aynı zamanda içerisinde olsun doldurur ve otomatik ayarlanmış bir pasajı var mı?

Hmm, bunu daha önce denedik olmadı ama propfull.snippet açtım ve gibi görünüyor;

 .... 
     <Literal> 
      <ID>field</ID> 
      <ToolTip>The variable backing this property</ToolTip> 
      <Default>myVar</Default> 
     </Literal> 
    </Declarations> 
    <Code Language="csharp"><![CDATA[private $type$ $field$; 

public $type$ $property$ 
{ 
    get { return $field$;} 
    set { $field$ = value;} 
} 
.... 

Ve indexer.snippet;

.... 
.... 
<Code Language="csharp"><![CDATA[$access$ $type$ this[$indextype$ index] 
{ 
    get {$end$ /* return the specified index here */ } 
    set { /* set the specified index to value here */ } 
}]]> 
.... 

Yani, indexer.snippet yılında <Literal><ID>field</ID>...</Literal> bölümünü tanımlamak ve değiştirmek eğer alıcı ve ayarlayıcı gibiyse;

public object this[int index] 
{ 
    get { return $field$; } 
    set { $field$ = value; } 
} 

bu kudreti iş her şey iyiyse. Bu arada, bu çalışır, dizinleyiciye ek bir özel alan yaratacaktır. Bu parçacıklar Visual Studio 2012 için C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC#\Snippets\1033\Visual C# klasöründedir.

+0

Cevabınız için teşekkür ederiz. Bunun bir 'Kod Snippet'i' olduğunu bilmiyordum. Bununla birlikte, otomatik olarak doldurup ayarlayan bir snippet var mı? –

+0

@ Jérémy Yaptım _not_ bu şekilde çalıştı ama işe yaramalı. Cevabımı güncelledi. –

+0

Her şey için teşekkürler. Ben bunu deneyeceğim. –