gpt4 book ai didi

c# - 为什么 C# 不需要在类定义后使用分号?

转载 作者:太空狗 更新时间:2023-10-29 20:55:25 26 4
gpt4 key购买 nike

在C++中,需要分号来结束类定义。我想知道为什么 c# 不需要它?

最佳答案

C++ 语言允许在类声明中声明变量。类似于:

class Mumble {
// etc...
} globalMumble;

分号是必需的语法,让编译器知道是否也声明了变量。这种语法是非常难以解释编译错误消息的长期来源。最糟糕的是:

咕哝.h:

class Mumble {
// etc...
} // <== note: semi-colon forgotten

咕哝.cpp:

#include "stdafx.h"
#include "mumble.h"

int main() {
Mumble* obj = new Mumble;
}

这会产生这些美妙的错误信息:

main.cpp(8): error C2628: 'Mumble' followed by 'int' is illegal (did you forget a ';'?)
main.cpp(9): error C3874: return type of 'wmain' should be 'int' instead of 'Mumble'
main.cpp(10): error C2440: 'return' : cannot convert from 'int' to 'Mumble'

请注意,所有错误消息均指的是 .cpp 文件,而不是包含错误的 .h 文件。绝望的程序员为此损失了数小时,连同大团的头发。

C# 语言是由高技能的 C++ 程序员设计的。谁着手设计一种语言来避免这些现实生活中的语法问题。这在 C# 语法的许多地方都很明显。长话短说:C# 不允许这种 C++ 语法,不需要分号来帮助编译器。

关于c# - 为什么 C# 不需要在类定义后使用分号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6038411/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com