【发布时间】:2012-09-22 09:20:40
【问题描述】:
这是一个纯粹的学术问题 - 我很容易找到解决方法。
在将 VB.Net 类移植到 C# 时,我发现在一个类中声明了一个字段,它使用 this 关键字作为 new() 语句中的参数。编译器说“关键字'this'在当前上下文中不可用'(VB编译器认为这种情况没有问题)。我很容易通过将字段的初始化移动到类的构造函数来解决这个问题。
edit:阅读cmets后,我添加了以下代码块
public class cTransactions
{
private List Trans = new List();
private List Archive = new List();
private cDDs Debits = new cDDs(this); // complier error
//Keyword 'this' is not available in the current context
private string path = Directory.GetCurrentDirectory() + "\";
private bool dirty = false;
private int LastID;
// followed by Property declarations, ctor, methods etc.
//...
}
但是,在执行类的构造函数之前,我找不到对关键字“this”不可用的任何引用(尽管我可能错过了 500 多页语言规范中的启示)。是这种情况还是我应该在字段声明之前的其中一行中查看一些错误?
【问题讨论】:
-
vb.net中没有“this”关键字
-
实际上在这方面存在一些编译器错误 - 尽管我不记得具体细节。也许最好的办法是发布有问题的代码行。
-
@MUG4N - 我没有明确指出 VB.Net 以上述方式使用关键字 me 没有问题。
-
欢迎来到 SO!我不会费心回复关于阅读语言规范等的狙击。如果每个人都阅读他们应该阅读的每一份文档,那么就很简单了!所以在问一个简单的问题之前批评一个SO初学者没有阅读500页的文档有点过分!
-
你能把原来的 VB.NET 代码贴在你看到这个的地方吗?
标签: c#