首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

#static

为什么未命名的命名空间是静态的“高级”替代?

_Europa宇宙无敌小白

其中一个原因可能是static已经有太多的意思了(我至少可以数到三个)。由于匿名命名空间可以封装任何包括类型的内容,因此它似乎优于static解决办法。

X:UWP XAML中的Static?

在UWP上没有静态标记扩展(也没有WinRT平台)。 可能的解决方案之一是创建类,将枚举值作为属性,并将该类的实例存储在ResourceDictionary中。 例子: public enum Weather { Cold, Hot } 下面是具有枚举值的类: public class WeatherEnumValues { public static Weather Cold { get { return Weather.Cold; } } public static Weather Hot { get { return Weather.Hot; } } } 在你的资源字典中: <local:WeatherEnumValues x:Key="WeatherEnumValues" /> 如下: "{Binding whatever, Converter={StaticResource converterName}, ConverterParameter={Binding Hot, Source={StaticResource WeatherEnumValues}}}" />... 展开详请

“static const”vs“#define”vs“enum”?

这取决于你需要什么价值。你(和其他人迄今为止)省略了第三种选择: static const int var = 5; #define var 5 enum { var = 5 }; 忽略关于选择名称的问题,那么: 如果你需要传递一个指针,你必须使用(1)。 由于(2)显然是一个选项,你不需要传递指针。 (1)和(3)在调试器的符号表中都有一个符号 - 这使调试更容易。(2)更有可能没有象征,让你想知道它是什么。 (1)不能用作全球范围数组的维度; (2)和(3)都可以。 (1)不能用作函数范围内静态数组的维度; (2)和(3)都可以。 在C99下,所有这些都可以用于本地阵列。从技术上讲,使用(1)意味着使用VLA(可变长度数组),虽然“var”引用的维度当然会被固定为5。 (1)不能用在switch语句的地方; (2)和(3)都可以。 (1)不能用来初始化静态变量; (2)和(3)都可以。 (2)可以改变你不想改变的代码,因为它被预处理器使用; (1)和(3)都不会有这样的意想不到的副作用。 您可以检测(2)是否已经在预处理器中设置; (1)和(3)都不允许。 所以,在大多数情况下,更喜欢“枚举”。否则,第一个和最后一个要点可能是控制因素 - 如果你需要同时满足这两个要点,你必须更加努力地思考。 如果你问的是C ++,那么每次都使用选项(1) - 静态常量。... 展开详请
领券
http://www.vxiaotou.com