c# - 扩展 C# 中的现有结构以添加运算符

标签 c# .net struct operator-keyword

我想扩展 .NET 的内置 Color 结构以添加新的运算符,例如 +-
我将像这样使用它们:

Color c1 = Color.FromName("Red");
Color c2 = Color.FromName("Blue");
Color result = c2 - c1;

这可能吗?如果是,怎么办?

最佳答案

使用内置运算符无法做到这一点。

不过,您可以编写一个扩展方法来伪造它:

public static class Extensions
{
    public static Color Substract(this Color color, Color theOtherColor)
    {
        //perform magic here! 
        //be sure to return something or this won't compile
    }
}

Color c1 = Color.FromName("Red");
Color c2 = Color.FromName("Blue");
Color result = c2.Subtract(c1);

关于c# - 扩展 C# 中的现有结构以添加运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7095035/

相关文章:

c - 结构体中的可变长度数组

c++ - 如何将字体文件集成(硬编码)到我的程序中?

c++ - 这个C++结构是什么意思?

C# 单元测试中未捕获的异常

c# - 无法从服务器线程更新 UI 中的文本框

c# - System.Runtime.Cache 立即过期

.net - 使用 .NET 增强读取和解析文本文件的替代方案

c# - 使用 SQL 在 C# 中使用 Combobox

c# - 一个函数会打印多少次到控制台?

c# - 通过构建器模式使用异步任务