Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >属性和命名/可选的构造函数参数不起作用的问题?

属性和命名/可选的构造函数参数不起作用的问题?

提问于 2018-02-05 15:57:30
回答 2关注 0查看 275

我有如下定义的自定义属性:

代码语言:txt
AI代码解释
复制
  [AttributeUsage(AttributeTargets.Field)]
  public class EnumDisplayAttribute : Attribute
  {
    public string Description { get; private set; }
    public string Code { get; private set; }

    public EnumDisplayAttribute(string description = null, string code = null)
    {
      Description = description;
      Code = code;
    }
  }

这两个构造函数参数都是可选的。

在这样的字段上使用此属性时

代码语言:txt
AI代码解释
复制
  public enum TransactionType
  {
    [EnumDisplay(code: "B")] 
    Bill,
    [EnumDisplay(description: null, code: "C")]
    CashReceipt,
  }

回答 2

头像是我媳妇

发布于 2018-02-06 01:30:46

希望实现可选效果,请尝试以下操作:

代码语言:javascript
运行
AI代码解释
复制
[AttributeUsage(AttributeTargets.Field)]
public class EnumDisplayAttribute : Attribute
{
  public string Description { get; set; }
  public string Code { get; set; }

}

并应用如下:

代码语言:javascript
运行
AI代码解释
复制
[EnumDisplay(Description = null, Code = "C")]
private object _aField;

罗斯魂丶

发布于 2018-02-06 00:21:06

代码如下:

代码语言:javascript
运行
AI代码解释
复制
[AttributeUsage(AttributeTargets.Field)]
public class EnumDisplayAttribute : Attribute
{
    public string Description { get; set; }
    public string Code { get; set; }

    public EnumDisplayAttribute()
    {
    }
}

public enum TransactionType
{
    [EnumDisplay(Code = "B")] 
    Bill,
    [EnumDisplay(Description = null, Code = "C")]
    CashReceipt,
}
和开发者交流更多问题细节吧,去 写回答
相关文章
C# 4.0命名参数和可选参数
Named And Optional Arguments - 命名参数和可选参数
跟着阿笨一起玩NET
2018/09/18
7210
C#新功能--命名参数与可选参数
  可能是篇幅太短了,又被打入冷宫了.先重发一篇加上可选参数.本来不想加这个呢,因为可选参数可能大家用的会多点.其实这 两个在VB中早就有了,C#中,在.net4发布之前是不能使用的.看到这个比较兴奋,我想大家也有好多人不知道,所以就强烈的想与大家 分享一下. 一、命名参数    命名参数会潜在的改变编写代码的方式.这个新功能能使代码更容易阅读和理解. 例如,看一下System.IO名称空间中的File.Copy()方法,它一般构建为 File.Copy(@"C:\mytestFile.txt",@"C:
hbbliyong
2018/03/05
1.2K0
TypeScript中的可选属性和只读属性
可选属性 接口里的属性不全都是必需的。 有些是只在某些条件下存在,或者根本不存在。 例如给函数传入的参数对象中只有部分属性赋值了。带有可选属性的接口与普通的接口定义差不多,只是在可选属性名字定义的后面
孙亖
2018/06/07
3.3K0
C#4.0新特性 可选命名参数
class Program     {         static void PrintStudents(int id = -1, string name = "*", int age = -1)         {             Console.WriteLine("the student is id:{0} name:{1} age:{2}", id, name, age);         }         static void Main(string[] args)         
liulun
2022/05/09
4800
【Kotlin】类的初始化 ② ( 主构造函数 | 主构造函数定义临时变量 | 主构造函数中定义成员属性 | 次构造函数 | 构造函数默认参数 )
在 Kotlin 类中 , 可以在 类声明 时 在 类名后 定义 " 主构造函数 " ;
韩曙亮
2023/03/30
5.8K0
C++带参数的构造函数 | 有参构造函数
在C++中,程序员希望对不同的对象赋予不同的初值,可以采用带参数的构造函数,在调用不同对象的构造函数时,从外面将不同的数据传递给构造函数, 以实现不同的初始化。
小林C语言
2021/01/28
4.5K0
C++带参数的构造函数 | 有参构造函数
TypeScript-类方法修饰符和TypeScript-类可选属性和参数属性
博主假设有这么一个需求: 有一个基类, 所有的子类都需要继承于这个基类, 但是我们不希望别人能够通过基类来创建对象:
杨不易呀
2023/09/28
3560
TypeScript-类方法修饰符和TypeScript-类可选属性和参数属性
js 中的构造函数,构造函数作用,构造函数和普通函数的区别
函数的定义方式: 1.声明式函数定义: function 函数名 (){};这种定义方式,会将函数声明提升到该函数所在作用域的最开头,也是就无论你在这个函数的最小作用域的那儿使用这种方式声明的函数,在这个作用域内,你都可以调用这个函数为你所用。 2.函数表达式:let fun = function(){}; 此方式定义的函数,只能在该作用域中,这段赋值代码执行之后才能通过fun()调用函数,否则,由于变量声明提升,fun === undefined。 3.new Function 形式: var fun1 = new Function (arg1 , arg2 ,arg3 ,…, argN , body );Function构造函数所有的参数都是字符串类型。除了最后一个参数, 其余的参数都作为生成函数的参数即形参。这里可以没有参数。最后一个参数, 表示的是要创建函数的函数体。
全栈程序员站长
2022/10/04
4.1K0
java scanner构造函数_使用Scanner作为构造函数的参数的Java
这是一个学校任务的问题,这就是为什么我这样做的原因。使用Scanner作为构造函数的参数的Java
用户7886150
2021/04/26
3.3K0
过程(五)可选参数和可变参数
大家好,上节介绍了过程传递参数时,形参与实参结合的两种方式,传地址和传值。本节将介绍可选参数和可变参数。
无言之月
2019/10/13
5K0
构造函数内的方法与构造函数prototype属性上方法的对比(转)
本文的目的是让大家理解什么情况下把函数的方法写在JavaScript的构造函数上,什么时候把方法写在函数的prototype属性上;以及这样做的好处.
山河木马
2019/03/05
1.2K0
构造函数内的方法与构造函数prototype属性上方法的对比(转)
(六·)可选的对象属性类型
我们上一章节中定义的对象属性,使用的时候必须要包含定义的属性,否则就会报错,那么如果在我们开发中,有些属性不是必须的怎么办呢?
老怪兽
2023/02/22
1.6K0
关于setTimeout和setInterval的函数参数问题
今天在写验证码倒计时小demo时,用了如下代码: window.setTimeout(count(num),1000); 这样直接使用将使count函数立即执行,并将返回值传递给setTimeout函数作为参数,其结果并不是真正需要的,所以会出现问题。 方法一 使用字符串形式可以达到想要的结果: window.setTimeout("count(num)",1000); 这是我以前常用的方法。 但这种写法是将函数包在引号里,有点像字符串,不够直观。 而且有些场合必须使用函数名,于是上网查阅了以下方法: 方法
mcq
2018/06/20
2.1K0
TypeScript-可选属性和索引签名
本章节要介绍的内容为 TS 接口当中的可选属性和索引签名,如果要想先了解可选属性和索引签名之前首先要来介绍一下接口的注意点,接口的注意点就是如果你使用了接口类型来限定了函数的入参,限定了某个变量,这个时候你调用函数或者使用变量的时候就必须和接口里面的限定一模一样,例如之前我们接口当中有 firstName 与 lastName 那么你调用函数给入参的时候入参的参数当中就必须包含该两个参数,那么如何来验证一下我所说的这一点内容呢,其实很简单,直接上代码即可如下代码是正常情况下的代码:
杨不易呀
2023/09/28
3900
TypeScript-可选属性和索引签名
ts函数可选参数-未使用—ESlint 校验
如果你在 TypeScript 函数中使用了可选参数,但是 ESLint 报错了,你可以通过以下方法进行解决:
程序员王天
2023/10/18
9600
navigator对象属性_javascript构造函数
注意: 没有应用于 navigator 对象的公开标准,不过所有浏览器都支持该对象。
全栈程序员站长
2022/11/04
1.1K0
python 参数可选的装饰器
from functools import wraps, partial import logging
用户5760343
2019/12/12
1.3K0
【Rust 日报】2021-11-25 Rust中的函数重载和可选参数事例
Github: https://github.com/tidunguyen/flexible-fn-rs 我很愿意分享我的实现。
MikeLoveRust
2021/12/01
1.6K0
java的静态属性,静态块,构造函数的执行顺序
今天为了搞清楚实例化一个对象时其属性等的实例化顺序,写了下面的例子来探究: 实例化一个C的对象,其中,A为其静态属性,B为其普通属性;D为C的父类,E为D的静态属性,F为D的普通属性;C中还包含了静态代码块和普通代码块。 package com.yawn; public class Test3 { public static void main(String[] args) { System.out.println("-------第1次实例化-------"); new C(); Sys
yawn
2018/03/14
1.2K0
点击加载更多

相似问题

如何创建带有可选参数的Python函数?

2295

initializer_list构造函数的问题?

081

构造函数和ngOnInit的区别?

2720

没有参数的函数编译问题?

2371

瓶能有可选的URL参数吗?

2206
相关问答用户
某公司 | 程序员擅长1个领域
腾讯云TDP | 先锋会员擅长2个领域
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档