小编Koc*_*vid的帖子

在C#中嵌套try-finally

为什么不是"Console.WriteLine("asdf");" 执行?所有其他人都是.难道不是因为我们不能从最终范围跳出来吗?

static bool Func()
{
    try
    {
        try
        {
        }
        finally
        {
            try
            {
                throw new ApplicationException();
            }
            finally
            {
                Console.WriteLine("asd");
            }

            Console.WriteLine("asdf");
        }
    }
    finally
    {
        Console.WriteLine("asd");
    }
}
Run Code Online (Sandbox Code Playgroud)

c# try-catch

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

Rust 宏用加号重复

运算符如何+用作重复分隔符?

fn dot(self, rhs: Self) -> S {
    $(self.$s * rhs.$s)++
}
Run Code Online (Sandbox Code Playgroud)

$s将是x, y,z所以我想将宏扩展为self.x * rhs.x + self.y * rhs.y + self.z * rhs.z。如果我写$(self.$s * rhs.$s)-+,那么它可以工作并扩展到减法,但我需要加法,是否可以转义+标记?

rust

4
推荐指数
1
解决办法
1352
查看次数

使代码无法访问

标记代码无法访问的最佳方法是什么,因此编译器不会给出错误消息?一个简短的例子:

int x;
if (y == 0) x = 1;
else if (y == 1) x = 2;

Console.WriteLine(x);
Run Code Online (Sandbox Code Playgroud)

我知道y可以是0或1,但C#会给出一条消息,即x不会使所有路径成为值.真正的代码不是这个,但我想让它更短.

抛出异常是一种好习惯,还是有其他方法?

int x;
if (y == 0) x = 1;
else if (y == 1) x = 2;
else throw new Exception();

Console.WriteLine(x);
Run Code Online (Sandbox Code Playgroud)

c#

0
推荐指数
1
解决办法
252
查看次数

标签 统计

c# ×2

rust ×1

try-catch ×1