我知道在 C# 中有命名参数之类的东西,所以这有点误导。我的问题是它们通常应该被称为什么。
在我使用其他语言的库时,我有时会遇到可以在类的函数中使用的预定义值。
object.myFunc(SPECIAL_VALUE);
它通常以所有大写字母命名,并且是函数中非常具体的值。我认为它的行为很像公共静态字符串,但是当我使用这个想法时,智能感知并没有选择它。有人可以告诉我这种参数选项的一般名称,如果它们存在,使用这种东西的利弊。
谢谢,
我知道在 C# 中有命名参数之类的东西,所以这有点误导。我的问题是它们通常应该被称为什么。
在我使用其他语言的库时,我有时会遇到可以在类的函数中使用的预定义值。
object.myFunc(SPECIAL_VALUE);
它通常以所有大写字母命名,并且是函数中非常具体的值。我认为它的行为很像公共静态字符串,但是当我使用这个想法时,智能感知并没有选择它。有人可以告诉我这种参数选项的一般名称,如果它们存在,使用这种东西的利弊。
谢谢,
通常,C# 中的那些常量是这样声明和大小写的......
public const String MyConstantThingHere = "Some value";
在Java中,它更像是......
public static final String MY_CONSTANT_THING_HERE = "Some value";
我会简单地调用这些公共类常量。见这里。
另外,供参考: http: //www.dofactory.com/reference/csharp-coding-standards
您还可以使用静态导入来引用它们...
请参见此处:c# 中的静态导入
您指的是“常数”。它们有两个目的:
他们确保一个具有某种意义的值(如您所说的“特殊值”)在一个地方声明并重新使用,以便如果它发生变化,我们会在一个地方进行更改。
它们使我们的代码更具可读性。例如,我们可能希望两个始终显示网页列表中的前四项。我们可能有一个长度应该总是四个字符的输入。如果其他人只是阅读我们的代码并在这里和那里看到数字 4,那么数字 4 的含义可能并不明显。我们希望我们的代码尽可能容易理解。
所以当我们声明
const int NUMBER_OF_ITEMS_TO_DISPLAY = 4
或者
const string MAX_INPUT_LENGTH_SETTINGS_KEY = "maximumInputLength"
然后,当我们在代码中使用这些常量时,其他人就可以说出它们的含义。
使用常量的反义词称为使用“幻数”或“幻字符串”。它们只是出现在我们的代码中,没有上下文或解释。它可能只是我们任意选择的值,但将其声明为常量会赋予它上下文和意义。
大写字母不是必需的。它们只是一种使常量易于识别的约定。
我不太确定,你的意思。C#中命名参数的概念如下例所示:
namespace Testconsole {
public class obj {
public int myFunc(int value1, int value2 = 4, int value3 = 8) {
return value1 + value2 + value3;
}
}
class Program {
static void Main(string[] args) {
obj adder = new obj();
Console.WriteLine(adder.myFunc(value1: 1, value3: 1));
Console.ReadLine();
}
}
}
Testconsole 返回 6:value1 设置为“1”,value3 设置为“1”,value2 缺失,因此使用默认值“4”填充。
也可以将公共静态字符串传递给函数:
namespace Testconsole {
public class obj {
public String myFunc(String mySpecialValue) {
return "now I " + mySpecialValue;
}
}
class Program {
public static String SPECIAL_VALUE = "got it";
static void Main(string[] args) {
obj Learn = new obj();
Console.WriteLine(Learn.myFunc(SPECIAL_VALUE));
Console.ReadLine();
}
}
}
控制台输出:
Now I got it.