class A { public A() { B b = new B(new X()); } }class B { private X bx = null;// bx 私有成员,X 类的对象 public B(X x)//x 外部传参 变量 { this.bx = x; } }class X { }这意思吗?
上楼我没看懂。这样吧 class sample { private int temp; public sample (ref int variable){ //这里怎么写实现 temp 改变 variable 跟着改变 } }//这里有个函数 int va; sample sa = new sample( ref int va); //类里面改变后,va变量跟着变化
没看懂你要做什么,看你的注释: //这里怎么写实现 temp 改变 variable 跟着改变 variable = temp;我的理解: =============class sample { private int temp; public sample (ref int variable){ variable = 22;// 3.这里等于 22 ,那变量 va 这时也等于22 } }// 1.这里 va = 33 int va = 33; // 2.调用 sample 构造函数 sample sa = new sample( ref int va);
上楼的理解是对的。还有个问题是,能不能在成员函数里(不是构造函数)改变外部变量的值?class sample { private int temp; public sample (ref int variable){ variable = 22;// 3.这里等于 22 ,那变量 va 这时也等于22 } public void change (){ //这里怎么写才能改变变量 va 的值?这个函数不能有参数 }}// 1.这里 va = 33 int va = 33; // 2.调用 sample 构造函数 sample sa = new sample( ref int va);
具体怎样做?如果C++的话,可以设置引用变量,C#怎么做?C#的引用调用似乎和C++不同
这个你看下ref out就明白怎么做到了。类成员不是引用类型 也是可以改变的,不用引用调用的前提下
class B { //.. public int va = 10; //.. }//int va 是 B 类的变量,你想 va 被外部类访问,那要么就把 va 设置为 public class sample { private int temp; public sample (ref int variable) { public void change () { B b = new B(); b.va = 30; } } }//要么就把 va 设置为属性访问。 class B { int va = 10; public int Va{ get{return va;} set{va = value;} } }class sample { private int temp; public sample (ref int variable) { public void change () { B b = new B(); b.Va = 30; } } }// 要么就反射去设置 va 。 class B { int va = 10; }class sample { private int temp; public sample (ref int variable) { public void change () { B b = new B(); Type t = typeof(B); BindingFlags bf = BindingFlags.NonPublic | BindingFlags.Instance; FieldInfo mi = t.GetField("va",bf); mi.SetValue(b,30);// 设置 b 对象的 va 字段 } } } 为什么一个变量要私有,又要在外部去设置它哦?
{
public A()
{
B b = new B(new X());
}
}class B
{
private X bx = null;// bx 私有成员,X 类的对象
public B(X x)//x 外部传参 变量
{
this.bx = x;
}
}class X
{
}这意思吗?
class sample {
private int temp;
public sample (ref int variable){
//这里怎么写实现 temp 改变 variable 跟着改变
}
}//这里有个函数
int va;
sample sa = new sample( ref int va); //类里面改变后,va变量跟着变化
//这里怎么写实现 temp 改变 variable 跟着改变
variable = temp;我的理解:
=============class sample {
private int temp;
public sample (ref int variable){
variable = 22;// 3.这里等于 22 ,那变量 va 这时也等于22
}
}// 1.这里 va = 33
int va = 33;
// 2.调用 sample 构造函数
sample sa = new sample( ref int va);
private int temp;
public sample (ref int variable){
variable = 22;// 3.这里等于 22 ,那变量 va 这时也等于22
}
public void change (){
//这里怎么写才能改变变量 va 的值?这个函数不能有参数
}}// 1.这里 va = 33
int va = 33;
// 2.调用 sample 构造函数
sample sa = new sample( ref int va);
{
//..
public int va = 10;
//..
}//int va 是 B 类的变量,你想 va 被外部类访问,那要么就把 va 设置为 public
class sample
{
private int temp;
public sample (ref int variable)
{
public void change ()
{
B b = new B();
b.va = 30;
}
}
}//要么就把 va 设置为属性访问。
class B
{
int va = 10;
public int Va{
get{return va;}
set{va = value;}
}
}class sample
{
private int temp;
public sample (ref int variable)
{
public void change ()
{
B b = new B();
b.Va = 30;
}
}
}// 要么就反射去设置 va 。
class B
{
int va = 10;
}class sample
{
private int temp;
public sample (ref int variable)
{
public void change ()
{
B b = new B();
Type t = typeof(B);
BindingFlags bf = BindingFlags.NonPublic | BindingFlags.Instance;
FieldInfo mi = t.GetField("va",bf);
mi.SetValue(b,30);// 设置 b 对象的 va 字段
}
}
}
为什么一个变量要私有,又要在外部去设置它哦?