我在想有没有办法在单个语句中分配不同类型的变量..?
string s = "";
int ia = 0;
int ib = 5;
// is there any short hand technique to assign all
// 3 variables in single statement..?:
s = ia = ib;
答案 0 :(得分:3)
你可以这样做:
string s = "";
int ia = 0;
int ib = 5;
s = (ia = ib).ToString();
我不推荐它,但它会起作用 - ia
将为5,而s
将为" 5"。
你真的而不是使用两个语句吗?我试图避免在一个陈述中做太多 - 简洁不与清晰度相同。我想大多数人会觉得这个更简单:
string s = "";
int ia = 0;
int ib = 5;
ia = ib;
s = ib.ToString();
或者更好:
int ib = 5;
int ia = ib;
string s = ib.ToString();
(我不喜欢用值覆盖初始化变量而不会被读取。)
答案 1 :(得分:2)
您可以,但您必须解释(通过运算符)如何执行此操作:
public class MyClass {
public static implicit operator MyClass(int value) {
return new MyClass();
}
}
...
int a = 2;
int b = 3;
MyClass c = a = b;
在您的情况下,int
无法隐式转换到String
,这就是错误的原因。解决方案是显式转换:
int a = 2;
int b = 3;
String c = (a = b).ToString(); // explicit conversion required
答案 2 :(得分:0)
没有。但你可以转换类型。在你的例子中:
int a1 = 5;
String s = "" + a1;
这不是最好的方式。但最简单的。
答案 3 :(得分:-1)
如果数据类型相同,您可以使用速记技术。在你的情况下......
int ia = 0, ib = 5;
string s = ia = ib;