C#中的预编译有没有c++宏中的复杂功能?

donkey301 2011-12-05 08:38:34
譬如c++宏可以定义一个表达式,在编译时展开。

//C++ Macro
#define MACRO(X,Y) (X+Y)

我现在遇到的问题是,我需要定义很多属性,除了属性名不一样外,其它格式都一致,我想简化代码,写成c++中宏的形式在编译时展开,不知道怎么做?
譬如我的属性为:
        
public static DependencyProperty FirstProperty = DependencyProperty.Register("First",
typeof(string),
typeof(ABC),
new PropertyMetadata("First"));
[Browsable(false)]
[Description("First")]
[Category("Activity")]
public string First
{
get
{
return GetValue(FirstProperty) as string;
}
set
{
SetValue(FirstProperty, value);
}
}

public static DependencyProperty SecondProperty = DependencyProperty.Register("Second",
typeof(string),
typeof(ABC),
new PropertyMetadata("Second"));
[Browsable(false)]
[Description("Second")]
[Category("Activity")]
public string Second
{
get
{
return GetValue(SecondProperty) as string;
}
set
{
SetValue(SecondProperty, value);
}
}

...全文
169 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
jiuhexuan 2011-12-07
  • 打赏
  • 举报
回复
.net中的编译,交给clr去优化,一般不做什么
sdl2005lyx 2011-12-07
  • 打赏
  • 举报
回复
在C#中,不建议使用宏定义,因为它仅仅是是字符串替换而已,不具备类型安全检查!

用常量或函数去替换!
ZhangNan20100811 2011-12-05
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 gomoku 的回复:]
你要的C#(或Visual Studio C#开发环境)并不支持。
"宏"虽然方便,很多时候它也可以是非常邪恶的。

可以使用Visual Studio的预编译(Prebuild Event)等来进行一定的代码自动维护。
(比如展开宏定义等等)。

原文见:
http://topic.csdn.net/u/20110809/09/02b455d0-862a-4d95-9c1f-71a……
[/Quote]
+1
donkey301 2011-12-05
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 gomoku 的回复:]

你要的C#(或Visual Studio C#开发环境)并不支持。
"宏"虽然方便,很多时候它也可以是非常邪恶的。

可以使用Visual Studio的预编译(Prebuild Event)等来进行一定的代码自动维护。
(比如展开宏定义等等)。

原文见:
http://topic.csdn.net/u/20110809/09/02b455d0-862a-4d95-9c1f-71……
[/Quote]
看了一下链接网页,没找到需要的,Thanks any way.
黄亮 2011-12-05
  • 打赏
  • 举报
回复
没有C++那么复杂的,关键是一般我们C#编程不喜欢用这些,很可能导致看不懂程序。
C#是给人看的,C++是给超人看的。
gomoku 2011-12-05
  • 打赏
  • 举报
回复
你要的C#(或Visual Studio C#开发环境)并不支持。
"宏"虽然方便,很多时候它也可以是非常邪恶的。

可以使用Visual Studio的预编译(Prebuild Event)等来进行一定的代码自动维护。
(比如展开宏定义等等)。

原文见:
http://topic.csdn.net/u/20110809/09/02b455d0-862a-4d95-9c1f-71af887b7721.html

110,561

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧