Hen*_*man 19
在使用单词定义的地方,它用于表示与声明相同的内容
正确.
由于编译模型,C和C++需要将"声明"作为软/转发定义的概念.C++(概念上)使用单通道编译,C#是多通道.考虑:
class Bar; // declaration: needed in C++, illegal and unnecessary in C#
class Foo // start of definition, counts as a declaration of Foo
{
Foo f; // use of declared but still incompletely defined class Foo
Bar b; // use of declared but still undefined class Bar
}
class Bar // definition and re-declaration
{
}
Run Code Online (Sandbox Code Playgroud)
Bar b如果没有声明,C++就无法处理该字段.C#可以.
Ed *_* S. 11
这种区别不存在.您指的是声明的范围,定义点与变量/字段的范围无关.
int x; // 'x' is declared
x = 10; // 'x' is assigned
int y = 20; // 'y' is both declared and assigned
Run Code Online (Sandbox Code Playgroud)这没有多大意义.方法参数在方法签名中声明.
我认为你对1和3中的术语有点困惑.
Han*_*ant 10
C++构建模型可以追溯到一个铁氧体核心价值十几美元的时代.一次编译一个多个源代码文件.使用单通道编译器.链接器将所有内容粘合在一起.这使得头文件和原型中的单独声明成为必要.
C#编译器充分利用了现代机器资源.构成程序集的所有源代码文件都是同时编译的,编译器至少进行两次传递,因此它可以在方法体之前解析声明.仍然有一个可能的链接模型,但它很少使用.
声明必须匹配我能想到的定义的唯一概念是必须匹配目标方法的委托类型和必须匹配其具体实现的接口成员声明.
原问题1、2、3的答案:C#中没有区别
然而,关于方法的这些术语可能值得一提: