有没有直接的方法可以将大小或点乘以数字?

isp*_*iro 2 .net c#

“直接”是指类似于 Size*2(不起作用)的东西,而不是:

size1 = new Size(size1.Width * 2, size1.Height * 2);
Run Code Online (Sandbox Code Playgroud)

Han*_*ant 5

从技术上讲,您可以编写扩展方法:

public static class Extensions {
    public static Size Multiply(this Size size, double factor) {
        return new Size((int)(size.Width * factor), (int)(size.Height * factor));
    }
}
Run Code Online (Sandbox Code Playgroud)

但几乎没有人会正确使用它。他们会写

this.Size.Multiply(1.2);
Run Code Online (Sandbox Code Playgroud)

而不是所需的

this.Size = this.Size.Multiply(1.2);
Run Code Online (Sandbox Code Playgroud)

一个几乎不可避免的错误,因为它看起来像一个实例方法。所以不要这样做,只写一个静态的辅助方法。

  • 扩展方法更好,因为它比某些辅助方法更可重用并且更容易发现。如果您担心人们错误地使用它,只需将其命名为 MultipliedBy 即可。 (2认同)