C#常量和代理

sle*_*ath 2 .net c# asp.net

我之前在代码中看到过delgates和constants但是在适当的时候使用它们的时间和地点是什么时候?我看过的用途我可以看到其他方法来编程吗?任何人都能告诉我真正的好处,我从未使用过.

Abe*_*bel 5

我想强调C#之间const和之间的区别readonly,即使你没有问,它也很重要:

  1. 一个const变量是由它的文本值在编译时更换.这意味着,如果您更改它的值(即,添加更多数字PI或增加允许MAX_PROCESSORS),并且其他组件使用此常量,则它们将不会看到新值.
  2. 一个readonly变量也不能被改变,但永远不会被它的字面数值替换,当你编译.更新引用时,应用程序的其他组件将立即看到此更新,无需重新编译.

这种差异是微妙的,但非常重要,因为它可以引入微妙的错误.这里的教训是:只有const在绝对确定值永远不会改变时才使用,readonly否则使用.

代表是方法调用的占位符(蓝图,签名).我认为它们是方法的接口声明.委托变量属于委托类型.它可以被用作方法(但它可以指向相同方法签名的不同实现).

  • 顺便说一句:有一个简单的规则可以防止常量遇到的每个问题:只创建私有或内部常量.从不公开.然后你可以随时使用它们,并随心所欲地改变它们.但对于公共常数,你是对的.他们真的绝不能改变. (3认同)