我可以使用数组或其他可变数量的参数来初始化 C# 属性吗?

2023-12-12

是否可以创建一个可以使用可变数量的参数进行初始化的属性?

例如:

[MyCustomAttribute(new int[3,4,5])]  // this doesn't work
public MyClass ...

属性将采用一个数组。不过,如果您控制该属性,您也可以使用params相反(我认为这对消费者更好):

class MyCustomAttribute : Attribute {
    public int[] Values { get; set; }

    public MyCustomAttribute(params int[] values) {
       this.Values = values;
    }
}

[MyCustomAttribute(3, 4, 5)]
class MyClass { }

您的数组创建语法恰好是关闭的:

class MyCustomAttribute : Attribute {
    public int[] Values { get; set; }

    public MyCustomAttribute(int[] values) {
        this.Values = values;
    }
}

[MyCustomAttribute(new int[] { 3, 4, 5 })]
class MyClass { }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我可以使用数组或其他可变数量的参数来初始化 C# 属性吗? 的相关文章

随机推荐

  • CSS 文本填充差异 Firefox 与 Chrome 等

    如果有人可以在以下方面提供帮助 我将不胜感激 因为我花了整个晚上在这个问题上没有结果 我有一个网站 我想在每篇文章之后修改标签外观 问题在于 firefox 版本 14 0 1 为文本提供了较小的高度 总 高度为 15px icnludin
  • 访问作为泛型类型传递的类属性

    我有两个类 它们被传递给序列化方法 我想在序列化方法中访问这些类的两个属性 问题是序列化方法参数作为泛型类型传递 我不知道在这种情况下如何访问传递的类的属性 下面的例子 public class MyClass1 public string
  • 在另一个框架的上下文中运行 JQuery

    我正在合作的客户有一个像这样的框架集 当发生某个操作时 我需要我的框架 当前隐藏的重要框架 主要接管页面并阻止与其他框架的任何交互 我计划使用 jquery block UI 插件来阻止交互 问题是我实际上无法更改 foo ht
  • 如何将结果写入JTextArea

    我有问题 如何将结果 数据库选择写入 JTextArea 我的 JButton 的方法是 public void actionPerformed ActionEvent evt try Class forName com mysql jdb
  • 使用 Graph API 获取所有 Facebook 好友

    我尝试获取 me friends 返回的 JSON 包含的朋友比我的 Facebook 页面显示的少 3 个 事实证明 对于这 3 个 GET id 返回 false 而不是有效的 JSON 对象 尽管我没有看到它们有什么特别之处 只是它们
  • Mongodb find查询返回空数组

    我试图通过代码 id 获取产品 但结果是空数组 我的控制器 export const getProductByPLU async req res gt const searchPLU req query try const product
  • 自动滚动jetpack compose中后面的项目

    我有一个3 Column In 1st Column的组件是2nd and 3rd Column In 2nd Column里面有很多组件 最后3rd Column我有一些项目 但我停留在屏幕底部 我已经在这个的帮助下完成了answer 在
  • 与 PhP 一起使用的 AMP 表单

    我正在尝试使用 AMP 设置带有联系表单的页面 该表单只有 4 个字段 Name Email 我们能帮你什么吗 电话号码 然后我希望将该信息发送到我的电子邮件地址 这是我在 HTML 中的信息 h4 How can we help h4
  • scala - 泛型中的任何与下划线

    Scala 中以下泛型定义有何不同 class Foo T lt List and class Bar T lt List Any 我的直觉告诉我它们大致相同 但后者更明确 我发现前者可以编译但后者不能编译的情况 但无法指出确切的差异 Th
  • Ruby 中日期时间和时间的区别

    有什么区别DateTime and TimeRuby 中的类以及哪些因素会导致我选择其中之一 较新版本的 Ruby 2 0 在这两个类之间并没有真正的显着差异 由于历史原因 某些库会使用其中之一 但不一定需要关注新代码 选择一个以保持一致性
  • as3函数指针

    private function myFunction numIn Number trace numIn numIn var plan Object theFunctionName myFunction now use the functi
  • 如何更改小程序的权限和卡历史字节?

    我已经认为更改历史字节仅限于预个性化步 但是 我发现了一个名为设置ATRHistBytes今天在 GlobalPlatform API 中 这是它的描述 GlobalPlatform 2 2 第 172 页 设置ATRHistBytes p
  • 更改游戏对象枢轴点

    Unity 对象未在中心旋转 直到一个小时才好 我不相信我改变了代码或任何东西 我也尝试过弄乱左上角的枢轴 中心按钮 但没有任何帮助 游戏对象没有在中间旋转 旋转器代码 using UnityEngine public class Rota
  • #ifndef 在 c 文件中?

    是否可以放 ifndef在c文件的顶部 基本上我需要检查运行程序时是否声明了某个预处理器常量 我的程序将相应地改变 我需要检查是否 D DESCENDING ORDER 1作为参数添加 无论给出什么值 我的主 c 文件顶部有以下代码 ifn
  • 无型号类别的改装 2

    我想问一下Retrofit 2 0 一直以来 我只知道使用 GSON Converter 进行 Retrofit 并获取对象 但我不知道如何使用这样的API获取数据https hacker news firebaseio com v0 to
  • 为什么 Ruby 仅有时释放内存?

    根据我生成字符串的方式 Ruby 是否会将内存释放给操作系统 第一个测试代码将占用约235MB size 2 22 string a1234567890abcdefghijklmnopqrstuvwxyz size puts Sleepin
  • 错误:已经有一个与此命令关联的打开的 DataReader,必须先将其关闭

    我正在使用 sql 连接来访问数据库中的不同表 但是 代码返回以下错误 Error 已经有一个与此命令关联的打开的 DataReader 必须先将其关闭 MyContext conn new MyContext protected void
  • 如何列出J中动词的代码

    在控制台中 输入不带参数的单个动词将打印其内容 tolower 3 0 x I 26 gt n 65 i 26 a i t y y x n 97 i 26 a x t 这对于开发来说很好 但在执行过程中无法利用 有没有办法动态地做到这一点
  • 为什么 Haskell 没有比 Eq 更强大的替代方案?

    之所以Set不是给定函子here 似乎可以归结为这样一个事实 a b f a f b是可能的 那么 为什么 Haskell 没有 Eq 的标准替代品 比如 class Eq a gt StrongEq a where a gt a gt B
  • 我可以使用数组或其他可变数量的参数来初始化 C# 属性吗?

    是否可以创建一个可以使用可变数量的参数进行初始化的属性 例如 MyCustomAttribute new int 3 4 5 this doesn t work public MyClass 属性将采用一个数组 不过 如果您控制该属性 您也