C# 中索引器的快捷方式
Shortcut for indexers in C#
我在 C# 中的 class 中使用索引器,但我想知道是否有默认的快捷方式来制作索引器(例如 'cw
tab tab' Console.WriteLine()
)。有谁知道这是否存在?
这是我的 class 'Person' 代码(带索引器):
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");
}
}
}
提前致谢!
-杰里米
您可以创建代码片段,看看这个页面:https://msdn.microsoft.com/en-us/library/ms165394.aspx
或此页面的现有代码片段
https://msdn.microsoft.com/en-us/library/z41h7fat.aspx
indexer
Creates an indexer declaration.
Inside a class or a struct.
因此,输入 ind
并点击 Tab
两次。这会生成;
public object this[int index]
{
get { /* return the specified index here */ }
set { /* set the specified index to value here */ }
}
However, is there also a snippet that fills in the get and set
automatically?
嗯,我之前没有试过这个,但是我打开了propfull.snippet
,好像是;
....
<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;}
}
....
和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 */ }
}]]>
....
因此,如果您在 indexer.snippet
中定义 <Literal><ID>field</ID>...</Literal>
部分,并且如果您更改它 getter 和 setter 等;
public object this[int index]
{
get { return $field$; }
set { $field$ = value; }
}
如果一切正常,这个 可能 有效。顺便说一句,如果它有效,它将创建一个附加到索引器的私有字段。这些片段位于 Visual Studio 2012 年的 C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC#\Snippets33\Visual C#
文件夹中。
我在 C# 中的 class 中使用索引器,但我想知道是否有默认的快捷方式来制作索引器(例如 'cw
tab tab' Console.WriteLine()
)。有谁知道这是否存在?
这是我的 class 'Person' 代码(带索引器):
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");
}
}
}
提前致谢!
-杰里米
您可以创建代码片段,看看这个页面:https://msdn.microsoft.com/en-us/library/ms165394.aspx 或此页面的现有代码片段 https://msdn.microsoft.com/en-us/library/z41h7fat.aspx
indexer
Creates an indexer declaration.
Inside a class or a struct.
因此,输入 ind
并点击 Tab
两次。这会生成;
public object this[int index]
{
get { /* return the specified index here */ }
set { /* set the specified index to value here */ }
}
However, is there also a snippet that fills in the get and set automatically?
嗯,我之前没有试过这个,但是我打开了propfull.snippet
,好像是;
....
<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;}
}
....
和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 */ }
}]]>
....
因此,如果您在 indexer.snippet
中定义 <Literal><ID>field</ID>...</Literal>
部分,并且如果您更改它 getter 和 setter 等;
public object this[int index]
{
get { return $field$; }
set { $field$ = value; }
}
如果一切正常,这个 可能 有效。顺便说一句,如果它有效,它将创建一个附加到索引器的私有字段。这些片段位于 Visual Studio 2012 年的 C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC#\Snippets33\Visual C#
文件夹中。