C# 函数参数默认值问题

代码如下:privatevoidPrint(stringmessage,Colorcolor=Color.White){}报错:“color”的默认参数值必须为编译时常量... 代码如下:
private void Print(string message, Color color = Color.White) {}
报错: “color”的默认参数值必须为编译时常量
展开
 我来答
然后去远足
推荐于2017-11-29 · TA获得超过1万个赞
知道大有可为答主
回答量:4016
采纳率:83%
帮助的人:2450万
展开全部

C# 有2种不同的常量定义方式:编译时常量(compile-time) 和运行时常量(runtime)。所谓编译时常量,是以 const 关键字定义,所谓编译时是常量则以 readonly 关键字定义。

 

C# 规定参数的默认值必须是编译时能确定的常量值。

 

这些参数的类型可以是 C# 认定的基元类型。还可以包括枚举类型,以及能设为 null 的任何引用类型。

 

Color 这个枚举类属于运行时常量。

 

如果硬要写一个带默认值的函数,只能利用重写的方法,例如:

private void Print(string message) 

    Color color = Color.White; 


private void Print(string message, Color color) 

}

 

【附】C# 基元类型:

sbyte / byte / short / ushort /int / uint / long / ulong / char / float / double / bool / decimal /object / string

sky黄昏1
2014-02-26
知道答主
回答量:28
采纳率:0%
帮助的人:17.4万
展开全部
Color是什么?一个类?
更多追问追答
追问
Color是原数据来的,就是.net里面的那个Color。不是我自定义的
追答
哦,没用过,你这个是想要干什么
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式