昨天我发现我不能使用名为“Type”的字段,这可能是保留的。
虽然可以保留字段,但如果没有将Type字段定义为公共字符串,则仍然无法设置anyObject.Type。忽略任何getter和setter并直接跳转到将YourObject更改为“what”字符串。
亲自试试吧。定义“类型”字段并尝试进行设置。
这应该报告给Microsoft,因此将来没有人会使用“Type”作为字段,尝试定义它时没有警告/错误。
public Point_Extended(Point p, booking b) { this.ID = p.ID; this.Type = p.Type; this.Status = p.Status; this.Size = p.Size; this.Coords = p.Coords; this.Color = p.Color; this.BuildingID = p.BuildingID; this.Login = b.Login; this.Starts = b.Starts; this.Hours = b.Hours; this.BookingID = b.ID; }
答案 0 :(得分:4)
如果名称含糊不清 - 只需使用this.Type
/ obj.Type
(实例),TypeName.Type
(静态)或System.Type
(类型)。或者在非常讨厌的情况下,global::System.Type
。这工作得很好并且匹配问题(我认为):
static class Program
{
static void Main() {
Test anyObject = new Test();
anyObject.Type = "abc";
}
}
class Test
{
public string Type;
}
答案 1 :(得分:0)
您在班级的本地范围内定义“类型”,例如
class SomeClass
{
public string Type { get; set; }
}
然后在该类的某个方法中使用它,例如
class SomeClass
{
public string Type { get; set; }
public void DoSomeStuff()
{
Type = "Foo";
}
}
SomeClass(属性)中的“Type”和命名空间System(类型)中的“Type”之间不明确。
答案 2 :(得分:0)
没关系。
ToString()覆盖表示让我感到困惑,认为Type已被更改。