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)
{
...
{