是否可以直接在C#中的对象文字中调用方法?

时间:2011-07-29 14:26:41

标签: c# methods call literals

在C#中,当调用某些实例方法时,我们总是声明该类型的变量,然后为其赋值,并最后调用该方法:

string str = "this is a string";
int test = str.IndexOf("a");

在Javascript中,我们可以这样做:

var test = 'sdfsldkfjskdf'.indexOf('a');

这种方法在C#中是否合法,比方说,直接使用字符串文字作为简写,没有变量的声明?

4 个答案:

答案 0 :(得分:11)

是的,这绝对有效。

我怀疑你总是声明一个变量,即使不使用文字也是如此。例如,考虑:

string x = "hello";
string y = x.Substring(2, 3).Trim();

此处,我们使用Substring的结果作为调用Trim的实例。没有使用单独的变量。

但这同样可以写成:

string y = "hello".Substring(2, 3).Trim();

原始文字也是如此:

string x = 12.ToString("0000");

最终,文字只是另一种表达式,它可以用作实例方法调用的目标。

答案 1 :(得分:0)

是的,这是可能的。但是我一般不会推荐它,因为它令人困惑,而且其他开发人员也不清楚你在做什么。

答案 2 :(得分:0)

是的,它是有效的。没问题。

答案 3 :(得分:0)

是的,关于它的最好的事情是你甚至不必检查空