C# 获取并设置问题
下面是演示我的问题的代码(都在同一命名空间中): 我永远也做不到,我真的很想做。我做错了什么?这些值都将被正确设置,但我似乎从未进入BGroup的set部分C# 获取并设置问题,c#,accessor,C#,Accessor,下面是演示我的问题的代码(都在同一命名空间中): 我永远也做不到,我真的很想做。我做错了什么?这些值都将被正确设置,但我似乎从未进入BGroup的set部分 谢谢在您的代码中,您从未设置过BGroup。您正在设置A,这是BGroup的属性 试试像这样的东西 this.Fubar.BGroup = new BoolGroup(); 在代码中,您从未设置BGroup。您正在设置A,这是BGroup的属性 试试像这样的东西 this.Fubar.BGroup = new BoolGroup();
谢谢在您的代码中,您从未设置过BGroup。您正在设置A,这是BGroup的属性 试试像这样的东西
this.Fubar.BGroup = new BoolGroup();
在代码中,您从未设置BGroup。您正在设置A,这是BGroup的属性 试试像这样的东西
this.Fubar.BGroup = new BoolGroup();
您从未设置过
b组
。您所做的最接近的事情是Fubar.BGroup.A=true
和BGroup=new BoolGroup()代码>
Fubar.BGroup.A=true
获取BGroup
属性,并在BoolGroup
对象上设置A
属性,但不设置BGroup
bGroup=new BoolGroup()
设置bGroup
属性的支持字段,这就是为什么在获取bGroup
时会得到BoolGroup
,但它不会通过setter
如果要使用setter,则Foo
类应如下所示:
public class Foo
{
public Foo()
{
// Note uppercase on BGroup to access the property and
// not its backing field.
BGroup = new BoolGroup();
}
private BoolGroup bGroup;
public BoolGroup BGroup
{
get{ return this.bGroup; }
set
{
this.bGroup = value;
this.doSomething();
}
}
}
您从未设置过b组
。您所做的最接近的事情是Fubar.BGroup.A=true
和BGroup=new BoolGroup()代码>
Fubar.BGroup.A=true
获取BGroup
属性,并在BoolGroup
对象上设置A
属性,但不设置BGroup
bGroup=new BoolGroup()
设置bGroup
属性的支持字段,这就是为什么在获取bGroup
时会得到BoolGroup
,但它不会通过setter
如果要使用setter,则Foo
类应如下所示:
public class Foo
{
public Foo()
{
// Note uppercase on BGroup to access the property and
// not its backing field.
BGroup = new BoolGroup();
}
private BoolGroup bGroup;
public BoolGroup BGroup
{
get{ return this.bGroup; }
set
{
this.bGroup = value;
this.doSomething();
}
}
}
您没有使用以下语句调用BGroup属性的setter:
this.Fubar.BGroup.A = true;
“this.Fubar.BGroup”调用getter(返回BoolGroup)并使用“.a=true”调用BoolGroup的a属性的setter。您没有使用以下语句调用BGroup属性的setter:
this.Fubar.BGroup.A = true;
this.Fubar.BGroup.A = true;
“this.Fubar.BGroup”调用getter(返回BoolGroup)并使用“.a=true”调用BoolGroup的a属性的setter
this.Fubar.BGroup.A = true;
正在设置Fubar.BGroup的属性A,但未设置Fubar.BGroup
正在设置Fubar.BGroup的属性A,但未设置Fubar.BGroup。您的代码看起来很好。它没有触发的原因是,您实际上没有在任何地方设置Fubar.BGroup。您正在表单构造函数中设置Fubar.BGroup.A…这不会触发doSomething方法。您需要执行以下操作:
this.Fubar.BGroup = new BGroup();
或者在Foo构造函数中内部执行此操作:
public Foo()
{
this.BGroup = new BGroup();
}
你的代码看起来不错。它没有触发的原因是,您实际上没有在任何地方设置Fubar.BGroup。您正在表单构造函数中设置Fubar.BGroup.A…这不会触发doSomething方法。您需要执行以下操作:
this.Fubar.BGroup = new BGroup();
或者在Foo构造函数中内部执行此操作:
public Foo()
{
this.BGroup = new BGroup();
}
你指的是什么语言?如果你把语言放在标签里,你会让更多的人看到它,我想是C?肯定是C。我们在这里看到的所有东西都用的是什么其他语言?你指的是什么语言?如果你把语言放在标签里,你会让更多的人看到它,我想是C#?肯定是C#。我们在这里看到的所有东西都用了什么其他语言?你的第一个建议很好,但是你的第二个建议基本上和他已经在做的一样。你的意思是this.BGroup=new BGroup()代码>?抱歉,是的,这应该是属性,而不是我分配的私有字段。我会更新。你的第一个建议很好,但是你的第二个建议基本上和他已经在做的一样。你的意思是this.BGroup=new BGroup()代码>?抱歉,是的,这应该是属性,而不是我分配的私有字段。我会更新。所有的答案都解决了问题,但这一个对我解释得最好。谢谢大家。所有的答案都解决了问题,但这一个对我解释得最好。谢谢大家。