有没有办法在单个语句中分配不同的类型变量..?

时间:2015-02-04 06:49:11

标签: c#

我在想有没有办法在单个语句中分配不同类型的变量..?

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;  

4 个答案:

答案 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;