chapter38Condtional特性与条件编译

Condional特性:

一般用于程序开发过程中的“测试方法”的编写。测试阶段定义“测试的宏”,发布商业版本,取消宏即可。

演示用两种方法:

1.方法的Conditional特性

2.对于表达式的条件编译#if debug

其他预定义特性:

Serializable特性:

声明结构可以序列化

NonSerialized特性

声明结构不可以序列化

DllImport特性:

声明是非托管代码实现的。

托管代码:系统的、自动的

非托管代码:手动的、比如关闭一些IO、数据库连接


源代码:

/***
 * 学习特性:
 * 一、系统特性
 * 1.Obsolete特性(即过时特性),命名空间是using System;,并不是using System.Diagnostics;
 * 2.Conditional特性,针对方法
 * 3.条件编译技术,针对表达式 #if debug elseif #endif
 * 
 * 二、自定义特性(略)
 * 
 * 
 * 
 */
#define  OnlyTest             //定义一个宏,表示允许测试方法运行


#define Debug                //定义一个宏,表示调试阶段
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Reflection;
using System.Diagnostics;//特性专有的命名空间


namespace chapter38学习Condional特性
{
    class Program
    {
        //测试方法只存在于测试阶段,上线发布以后,测试方法就不运行了
        [Conditional("OnlyTest")]//有条件执行,默认不执行, 需要定义一个宏,参数和宏要对应起来
        public void TestMethod()
        {
            Console.WriteLine("这是测试方法");
        }


        public void Method1()
        {
            Console.WriteLine("这是方法1");
        }


        public void Method2()
        {
            Console.WriteLine("这是方法2");
        }


        public void Test1()
        {
            TestMethod();
            Method1();
            Method2();
        }


        /// <summary>
        /// 学习条件编译
        /// </summary>
        public void Test2()
        {
            Console.WriteLine("aaa");
            Console.WriteLine("bbb");
#if Debug
            Method1();
            Console.WriteLine("ccc");
#else
            Method2();
            Console.WriteLine("ddd");
#endif
                 
        }
        static void Main(string[] args)
        {
            Program obj = new Program();
           // obj.Test1();
            obj.Test2();
        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值