gpt4 book ai didi

c# - C# 中索引器的快捷方式

转载 作者:太空宇宙 更新时间:2023-11-03 19:00:43 25 4
gpt4 key购买 nike

我在 C# 的类中使用索引器,但我想知道是否有默认的快捷方式来制作索引器(例如 的 'cw tab tab'控制台.WriteLine())。有谁知道这是否存在?

这是我为类“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");
}
}
}

提前致谢!

-杰里米

最佳答案

来自 Visual C# Code Snippets

indexer

Creates an indexer declaration.

Inside a class or a struct.

enter image description here

所以,输入 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 */ }
}]]>
....

因此,如果您定义 <Literal><ID>field</ID>...</Literal>参与你的indexer.snippet如果你改变它的 getter 和 setter 之类的;

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

如果一切顺利,这可能会起作用。顺便说一句,如果它有效,它将创建一个附加到索引器的私有(private)字段。这些片段在 C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC#\Snippets\1033\Visual C# 中Visual Studio 2012 的文件夹。

关于c# - C# 中索引器的快捷方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36478723/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com