C# 有没有办法在单个语句中指定不同类型的变量。。?
我在想,有没有办法在一条语句中指定不同类型的变量C# 有没有办法在单个语句中指定不同类型的变量。。?,c#,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; 若数据类型相同,则可以使用速记技术。就你而言 int ia = 0, ib = 5; string s = ia = ib; 若数据类型相同,则可以使用
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;
若数据类型相同,则可以使用速记技术。就你而言
int ia = 0, ib = 5;
string s = ia = ib;
若数据类型相同,则可以使用速记技术。就你而言
int ia = 0, ib = 5;
string s = ia = ib;
不可以。但是你可以转换类型。在你的例子中:
int a1 = 5;
String s = "" + a1;
这不是最好的办法。但是最简单的 否。但您可以转换类型。在你的例子中:
int a1 = 5;
String s = "" + a1;
这不是最好的办法。但是最简单的 您可以,但您必须(通过操作员)解释如何操作:
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
,这就是错误的原因。解决方案是显式转换:
您可以,但您必须(通过操作员)解释如何操作:
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
,这就是错误的原因。解决方案是显式转换:
您可以这样做:
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();
(我不喜欢用值初始化变量,这些值将被覆盖而不被读取。)您可以这样做:
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();
(我不喜欢用值初始化变量,这些值将被覆盖而不被读取。)不。不能直接混淆不同的类型。如果有,它看起来会很混乱,可能会违反我所知道的每一个编码标准。请编写可读性好的代码。不管它有多长,我们都有滚动条@PetSerAl,似乎是一个解决方案。你想解决什么问题?考虑代码清晰。不。你不能直接把不同的类型混在一起。如果有,它看起来会很混乱,可能会违反我所知道的每一个编码标准。请编写可读性好的代码。不管它有多长,我们都有滚动条@PetSerAl,似乎是一个解决方案。你想解决什么问题?考虑代码清晰。你自己尝试过了吗?int IA=0,IB=5;这一部分当然有效。关于第二部分,不能将int赋值给string。对不起,我没有注意到这一点。实际的问题是关于分配不同类型的变量。对不起,我不好。我没注意到。你自己试过吗?intia=0,ib=5;这一部分当然有效。关于第二部分,不能将int赋值给string。对不起,我没有注意到这一点。实际的问题是关于分配不同类型的变量。对不起,我不好。我没有注意到。据说调用
ToString()
比无缘无故地引入字符串串接简单。据说调用ToString()
比无缘无故地引入字符串串接简单。是的,这是一种实现方法s=(ia=ib)。ToString()@约格什克莫罗尼:我不知道如何解释你的评论。。。这和我的答案中的代码是一样的,我认为这在可读性方面通常是个坏主意。是的,这是个坏主意,但我已经提出了一种方法来实现这一点,是的,这是一种方法,在可读性方面可能是坏的,但我们可以做到。是的,这是一种实现这一点的方法s=(ia=ib).ToString()@约格什克莫罗尼:我不知道如何解释你的评论。。。这和我的答案中的代码是一样的,我认为这在可读性方面通常是个坏主意。是的,这是个坏主意,但我已经问了一种方法,是的,这是一种方法,在可读性方面可能是个坏主意,但我们可以做到。