【发布时间】:2014-02-15 11:56:00
【问题描述】:
我从事过 iOS 项目,现在开始使用 Windows Phone,
在 iOS 中,我已将所有常见类复制到一个文件夹中(比如说父级),并将该文件夹链接到不同的项目中,比如说子项目。
在公共类中,我有一个名为 Constants.m 的类,因为我已经使用大约 98 个语句的某些值来挑战所有 #define 语句,我在所有类中都使用它。
在子项目中,我使用的是 .pch 文件,因为我只定义了项目特定的值 #define 语句,比如说 10 个值。
现在,当我运行子项目时,我在 .pch 文件中定义的任何值都将使用 Constants.m 中的默认值覆盖该值,因此我将获得子项目的特定值以及我未定义的任何值在子项目中,代码将从 Constants.h 中选择默认值。
我正在尝试在 Windows 手机应用程序开发中使用类似的东西,我可以链接这些类,但我无法从其他文件中获取 #define。
How to use #define from another file?
有什么方法可以覆盖定义的值吗?就像iOS一样。
【问题讨论】:
-
C# 在你使用它的方式上根本不支持#define。
-
您可以使用静态常量来定义所述值,但是,
#define在 c# 中的工作方式与在 c/c++ 中的工作方式不同 (reference) -
@GMasucci 静态常量 can't be overridden - 虚拟属性似乎最适合这里。
-
可能是带有属性的静态类?
-
你有几个选项,静态属性和重写的单例都可以工作。
标签: c# visual-studio windows-phone-8 windows-8 c-preprocessor