今天在看ScottGu些的VS2010和.NET 4.0系列博客中Optional Parameters and Named Arguments in C# 4 (and a cool scenario w/ ASP.NET MVC 2) 时,想到Parameter和Argument应该都可以翻译成“参数”。但到底这两者有什么具体的区别还有去深究过(关于ScottGu这篇文章的内容大家有兴趣自己去看)。今天刚好有时间就在网上google下。
先看看字典(灵格斯)的翻译:
Parameter: 参数, 参量; 界限; 因素, 特征; 决定功能形式的变数; 传送到功能或程序并影响其操作的值 (计算机用语)
Argument: 论据; 辩论; 争论; 缘由; 被应用到程序以及决定程序结果的可变物 (计算机用语)
在看看网络上的翻译:
Parameter:参数
Argument:参数,引量,引数
网络上的观点:
1、有人的观点是:这两者没有区别
2、有人说:
Parameter是形参
Argument是实参
不过有人反对说:
形参是Formal Parameter
实参是Actual Parameter
3、ANSI/ISO C++ Professional Programmer's Handbook中的观点:
Arguments and Parameters
The words arguments and parameters are often used interchangeably in the literature, although the Standard makes a clear distinction between the two. The distinction is chiefly important when discussing functions and templates.
Argument
An argument is one of the following: an expression in the comma-separated list that is bound by the parentheses in a function call; a sequence of one or more preprocessor tokens in the comma-separated list that is bound by the parentheses in a function-like macro invocation; the operand of a throw-statement or an expression, type, or template-name in the comma-separated list that is bound by the angle brackets in a template instantiation. An argument is also called an actual parameter.
Parameter
A parameter is one of the following: an object or reference that is declared in a function declaration or definition (or in the catch clause of an exception handler); an identifier from the comma-separated list that is bound by the parentheses immediately following the macro name in a definition of a function-like macro; or a template-parameter. A parameter is also called a formal parameter.
The following example demonstrates the difference between a parameter and an argument:
void func(int n, char * pc); //n and pc are parameters
template <class T> class A {}; //T is a a parameter
int main()
{
char c;
char *p = &c;
func(5, p); //5 and p are arguments
A<long> a; //'long' is an argument
A<char> another_a; //'char' is an argument
return 0;
}
--------------------------------------------------------------------------------------------------------------------------------------------------------------
调用时用Argument,声明时用Parameter
最后附上一个微软的术语翻译链接:http://www.microsoft.com/language/zh/cn/search.mspx