小编Mat*_*t_J的帖子

为什么在C#中,成员初始值设定项不允许这样做,但在VB.Net中允许使用

我正在将一个VB.Net应用程序转换为C#,并注意到在VB.Net代码中,有一个私有成员变量,它使用Me如下初始化:

Private m_ClassA As New MyCollection(Of ClassA)(Me)
Run Code Online (Sandbox Code Playgroud)

当我将其转换为C#代码时,如下所示:

private MyCollection<ClassA> _classA = new MyCollection<ClassA>(this);
Run Code Online (Sandbox Code Playgroud)

我有错误

理由是value虽然参数类型ref.

如果我把ref参数放在前面this,我就会收到错误

不能this在成员初始化程序中使用.

我在这里读到成员在基类之前被初始化,因此this不能在成员中使用,因为它可能尚未初始化.我的问题是为什么它在VB.Net中合法而不是C#?

这是由编译器以不同方式处理它吗?这两个人有不同的行为似乎很奇怪.

为了解决它,我想我将在构造函数中初始化成员.

c# vb.net

17
推荐指数
1
解决办法
607
查看次数

标签 统计

c# ×1

vb.net ×1