int _value; int a { set { _value = value; } get { return _value; } } int b { set { _value = value; } get { return _value; } } private void button1_Click(object sender, EventArgs e) { a = 1234; MessageBox.Show("" + b); }
class cla1 { public int a; } class cla2 { public int b; } class Program { static void Main(string[] args) { cla1 c1 = new cla1(); cla2 c2 = new cla2(); c1.a = 99; c2.b = c1.a; //当b的值被更改时,a的值也被更改 Console.ReadLine(); } }其实想在2个类里,任意一方改变都改变(在不想用static的情况下),可以实现吗?
int是值类型 值类型要转为引用类型需要装箱变成object,但object里存储的是值, int a = 5; object o = a;//装箱 obj = 5; int b = (int)o;//拆箱,将值返回 b = 5; b = 6;//只修改b的值一定要做,那就非安全代码了……
union类型 [StructLayout(LayoutKind.Explicit)] public struct DATA { [FieldOffset(0)] public int a; [FieldOffset(0)] public int b; }private void button1_Click(object sender, EventArgs e) { DATA data = new DATA(); data.a = 1234; MessageBox.Show("" + data.b); }
unsafe{ int a = 10; int* b = &a; *b = 11 }
int a = 5; unsafe { int* b = &a; *b = 6; } MessageBox.Show(a.ToString());
你同一个域用两个指向同一个地址的变量意义不大吧, 要是传给其他方法,可以用ref参数类型
定义一个属性 public int A { set { a = value; b = a; } get { return a; } }以后就不需要用a了,直接用大写的A代替咯!比如 A=20;
int a { set { _value = value; } get { return _value; } }
int b { set { _value = value; } get { return _value; } }
private void button1_Click(object sender, EventArgs e)
{
a = 1234;
MessageBox.Show("" + b);
}
class cla1
{
public int a;
}
class cla2
{
public int b;
}
class Program
{
static void Main(string[] args)
{
cla1 c1 = new cla1();
cla2 c2 = new cla2();
c1.a = 99;
c2.b = c1.a;
//当b的值被更改时,a的值也被更改 Console.ReadLine();
} }其实想在2个类里,任意一方改变都改变(在不想用static的情况下),可以实现吗?
值类型要转为引用类型需要装箱变成object,但object里存储的是值,
int a = 5;
object o = a;//装箱 obj = 5;
int b = (int)o;//拆箱,将值返回 b = 5;
b = 6;//只修改b的值一定要做,那就非安全代码了……
[StructLayout(LayoutKind.Explicit)]
public struct DATA
{
[FieldOffset(0)]
public int a;
[FieldOffset(0)]
public int b;
}private void button1_Click(object sender, EventArgs e)
{
DATA data = new DATA();
data.a = 1234;
MessageBox.Show("" + data.b);
}
int a = 10;
int* b = &a;
*b = 11
}
int a = 5;
unsafe
{
int* b = &a;
*b = 6;
}
MessageBox.Show(a.ToString());
要是传给其他方法,可以用ref参数类型
public int A
{
set
{
a = value;
b = a;
}
get
{
return a;
}
}以后就不需要用a了,直接用大写的A代替咯!比如
A=20;