C#类关键字变量
我们在代码中有以下循环:C#类关键字变量,c#,C#,我们在代码中有以下循环: foreach (var event in events) { ... { 当然,我们不能将变量命名为“event”,因为它是一个关键字。在这种情况下,哪种方式更合适:使用@prefix(@event)或使用另一个名称,如“currentEvent”?肯定使用另一个名称 关键字变量确实是C#的酷特性,但它们应该用于互操作性。因为@前缀非常罕见,可能会让其他开发人员感到困惑。我建议在这里使用另一个变量名 当名称是公共接口的一部分时,情况就不同了。在这种情况下,您希望使用
foreach (var event in events)
{
...
{
当然,我们不能将变量命名为“event”,因为它是一个关键字。在这种情况下,哪种方式更合适:使用@prefix(@event)或使用另一个名称,如“currentEvent”?肯定使用另一个名称
关键字变量确实是C#的酷特性,但它们应该用于互操作性。因为
@
前缀非常罕见,可能会让其他开发人员感到困惑。我建议在这里使用另一个变量名
当名称是公共接口的一部分时,情况就不同了。在这种情况下,您希望使用正确的名称,即使它是一个关键字。然而,如果你这样做,你会让想要使用你的界面的人很难,因为他们必须在任何地方使用
@
。就个人而言,我建议根据它的上下文和它所代表的内容来命名它。如果它表示要执行的事件,我可能会将其命名为executableEvent
,作为示例
或者,如果您只是在本地使用它来调用每个事件(例如),那么可以给它一个名称的缩写版本,例如
evt
。通常情况下,我会投票反对这种命名约定,但如果它只是暂时的,其他人可能会认为它很好。就个人而言,我不喜欢使用@和u作为前缀,只是为了能够使用关键字。我认为在大多数情况下,您可以重命名它,或者:
foreach (var uiEvent in uiEvents)
{
...
{
(更具体)
或
(某种速记)我通常会因为使用@
前缀而退缩。(我有时用它来命名扩展方法@this
中的第一个参数,但即使这样也很少见。)
看看你是否能想出其他方式来描述这一事件。例如,它是一种特殊类型的事件吗?我会使用
e
,\u event
或currentEvent
我真的建议您不要使用@
,因此您必须选择另一个名称。正如一些人所说,你可以将你的名字输入到一个更具体的事件类型中我个人会将它重构为更具描述性的类型,但是如果我在做像p/Invoke绑定这样的事情,并且一个参数被称为event
,我会将它设置为@event
,以与原始方法保持一致。是的,避免使用“@”。它在其他地方用作前缀,可能会让人困惑。我我省略了一个元音:“foreach(events中的var-evnt)”
foreach (var evt in events)
{
...
{