我是一名专业的php程序员,最近我在C#中开始了一个项目。 这些是我第一次使用C#。我的全局CONST的实现 - 是否有可能做不同的事情?
对于我的一个解决方案,我想使用全局CONST。我知道C#不允许你在类作用域之外定义任何变量,但是我想尝试和实现类似的东西,即使只是为了学习不同的语言技术。
我看到做类似的全局CONSTs的最佳方法是定义一个静态类,我们称之为Const,它将保存我所有解决方案的“常量”。 该类将使用私有字典来保存这些值,一种称为'define()'的方法来设置该字典中的值,'is_defined()'用于检查const是否存在等等。
现在, m即将编写将返回值的方法。 很明显,我可以使用一个方法Const.GetConst('someConstName')并得到想要的值,但这是一个很长的方法来检索一个常量,我需要它的任何时候。 我尽管使用了类似PHP的魔法getter(如果你不熟悉它) - 你可以在一个类中定义一个名为'__get'的方法,它可以处理所有未定义的类中的变量请求。 但是,我在C#中找不到任何类似的东西。我能找到的最接近的方法是在运行时在类中动态创建一个方法,这样每次在我的类中创建一个CONST时,我将创建一个“get方法”,它将从私有字典中提取值(这不是传统形式的get方法,因为它不会返回一个变量,而是会在字典中查找值并返回它)。
基本上,我问的是 - - 有没有什么办法来定义全局常量? - (甚至id上一个问题的答案是肯定的)有没有办法为动态定义变量设置一个更好的getter?
非常感谢您的帮助
这样的事情? :http://stackoverflow.com/questions/842590/static-constants-in-c/842596#842596 –
我认为你仍然是太多的PHP'心情'。为什么在知道何时使用它们时使用字典存储变量?你可以预先考虑一个名字,并将它们填入相应的类,如'Database。ConnectionString',具有封装,强打字等所有优点。 – CodeCaster
如果它们是动态属性_and_值,那么关于它们的恒定值是什么?这里有两种不同的情况:暴露常量或属性包;但他们是两回事。 –