小编ens*_*tis的帖子

为什么我不能在字符串之前使用@ $前缀?

所有这些字符串前缀在C#中都是合法的:

  "text"
 @"text"
 $"text"
$@"text"
Run Code Online (Sandbox Code Playgroud)

这不是为什么?

@$"text"
Run Code Online (Sandbox Code Playgroud)

人们会认为这些运算符的顺序无关紧要,因为它们在C#中没有其他含义,而是前缀字符串.我想不出这个倒置的双前缀不能编译的情况.订单是否仅为审美目的而强制执行?

c# string prefix string-interpolation

5
推荐指数
2
解决办法
169
查看次数

“使用”语句中的 C# 匿名对象可靠吗?

想象一下这个片段:

using System;



public class Report {
    static int Level=0;

    public static void WriteLine(string Message) {
        Console.WriteLine("{0}{1}",new String(' ',4*Level),Message);
    }

    public class Indent:IDisposable {
        public Indent()            { Report.WriteLine("{"); ++Level; }
        void IDisposable.Dispose() { --Level; Report.WriteLine("}"); }
    }
}



class Program {
    static void Main() {
        Report.WriteLine("Started");
        Report.WriteLine("Calling submethod");
        using(new Report.Indent()) {
            Report.WriteLine("Submethod started");
            using(new Report.Indent()) Report.WriteLine("Subsub, maybe?");
            Report.WriteLine("Submethod reporting everything is fine");
            Report.WriteLine("Submethod finished");
        }
        Report.WriteLine("Finished");
    }
}
Run Code Online (Sandbox Code Playgroud)

产生结果:

Started
Calling submethod
{
    Submethod started
    {
        Subsub, maybe?
    }
    Submethod …
Run Code Online (Sandbox Code Playgroud)

c# dispose idisposable using using-statement

3
推荐指数
1
解决办法
918
查看次数