在C#中,'base'作为函数参数名称的含义是什么?

3

我目前遵循微软的命名规范,在函数参数命名中使用驼峰式大小写。现在假设我想使用以下签名:

public string WriteNumberInBase (int number, int base)

在某些方法中,编译器会因为“base”是保留关键字而抱怨参数名称...是否有办法让“base”作为参数名称被接受?


2
现有的.NET运行时方法,如Conver.ToString使用toBase作为参数,也许inBase更合适? - Lasse V. Karlsen
8
考虑使用“基数”作为一种替代方案。 - Justin
4
不要这样做。停止过于珍视,使用一个不同的名字。 - spender
5个回答

阿里云服务器只需要99元/年,新老用户同享,点击查看详情
16

试试这个:

public string WriteNumberInBase (int number, int @base)
//                                               ^
//                             the @ sign is used to "escape" keywords
(顺带一提,在VB.NET中,您可以通过将关键字或保留字放在方括号中(例如[MyBase])来执行相同的操作。) 或者,简单地将参数命名为radix而不是base

非常感谢。嗯,由于该参数代表数字的基数,我想不出更好的名称了...你还记得任何名称吗? - Miguel
2
@Miguel,我扩展了我的答案。 Radix是数字系统基数的替代术语。 - stakx - no longer contributing

4
您可以像其他人一样使用@base。 但是,您还可以遵循Convert.ToString(int, int)的示例,使用toBase作为参数名称。 或者,您可以在上下文中将radix用作基数的同义词。当然,在这种情况下,您可能还需要更改方法的名称。

3
是的。
public string WriteNumberInBase (int number, int @base)

您还需要使用@符号引用参数:

DoSomethingWith (@base);

这看起来很奇怪,我建议你考虑一个不同的名称。
当这不是唯一的参数时,它看起来特别奇怪,因为@符号会让大脑误以为这个参数在语义上有所特殊,而实际上并不是。


非常感谢。嗯,由于该参数代表一个(数字)基数,我想不出更好的名称了……你还记得任何名称吗? - Miguel
根据Jon Skeet的建议,toBase是一个非常好的方法(在你的情况下是inBase,并将方法名称缩短为WriteNumber)。 - Dan Abramov

1
根据此页面的第一段,您可以在标识符前添加“@”字符以创建有效的标识符:
public string WriteNumberInBase(int number, int @base)

0

使用 @base 而不是 base .... 这适用于所有关键字 ... 在关键字前加上 @,你就没问题了


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,