c# - 如何将常量与 C# 中的接口(interface)相关联?

标签 c# c++-cli idl webidl

某些语言允许您将常量与接口(interface)相关联:

W3C 抽象接口(interface)做同样的事情,例如:

// Introduced in DOM Level 2:
interface CSSValue {

  // UnitTypes
  const unsigned short      CSS_INHERIT                    = 0;
  const unsigned short      CSS_PRIMITIVE_VALUE            = 1;
  const unsigned short      CSS_VALUE_LIST                 = 2;
  const unsigned short      CSS_CUSTOM                     = 3;

  attribute DOMString       cssText;
  attribute unsigned short  cssValueType;
};

我想定义这个接口(interface),以便它可以从 C# 中调用。

显然 C# 无法定义与接口(interface)关联的常量。

  • 将此类接口(interface)转换为 C# 的常用方法是什么?
  • DOM 接口(interface)是否有任何“规范的”C# 绑定(bind)?
  • 虽然 C# 不能,但是否有另一种 .NET 语言可以定义与接口(interface)关联的常量?

最佳答案

我添加了一个 Get only 属性并在定义中使用 const 对其进行支持。

public interface IFoo
{
    string ConstValue { get; }
}

public class Foo : IFoo
{
    public string ConstValue => _constValue;
    private string _constValue = "My constant";
}

关于c# - 如何将常量与 C# 中的接口(interface)相关联?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12752364/

相关文章:

c# - 如何在特定的 jwt 上下文下发出 post 请求 webclient

c# - Xamarin 示例应用程序中的错误

C# - 编写 COM 服务器 - 映射到方法的属性

haskell - 用于为 Haskell(和其他语言)包装 C++ 库的选项

java - Corba,在两台机器上运行Hello World

c# - C# 的浮点比较函数

c# - 跟踪 session 和表单例份验证在服务器上的剩余到期时间

c - 是否可以将 C 代码包含到 .NET C++/CLI 应用程序中?

.net - 将标准 C++ 嵌入到 .NET 应用程序中

.net - 请描述您使用 Microsoft C++/CLI 的经验