class AAA{
double a=0;
string s2="";
}我想问一下有没有办法实现下面的效果:
AAA aaa=new AAA(){s2="abc"};然后aaa=333;
实际上意义是aaa.a=333;
double a=0;
string s2="";
}我想问一下有没有办法实现下面的效果:
AAA aaa=new AAA(){s2="abc"};然后aaa=333;
实际上意义是aaa.a=333;
class AAA{
public double a{get;set;};
public string s2{get;set;};
public AAA(){
a=0;
s2="";
}
}
AAA aaa = new AAA(){s2="abc",a=78}
不懂别出来胡扯好不好。
aaa=333,典型的C#赋值语句,任何C#基础教材的第一章一定有讲这个东西。AAA aaa=new AAA(){s2="abc"};
//假设此时的aaa是一个对象a1,
aaa=333;
//此时的aaa就是另一个对象a2了。
public class CAaa
{
public int intParm = 0;
public static implicit operator CAaa(int value)
{
CAaa r = new CAaa();
r.intParm = value;
return r;
}
} [TestClass]
public class UnitTest1
{
[TestMethod]
public void TestMethod1()
{
CAaa aaa = new CAaa();
aaa=999;
Console.WriteLine(aaa.intParm);
}
}
就拿楼主的例子来说,假如存在一个int到aaa的隐式转换那么,执行完aaa=333;之后
aaa其实就是一个新的AAA实例,aaa里的s2=="";还是那句话,赋值是赋值,类型转换是类型转换,二者没一点关系,别扯到一起去。另外希望#6这位哥们 如果自己不懂得话就少说,自己犯错误不要紧,但是误导了别人可是很麻烦的。
那么可以用A="1"
来代表A.Text="1";