怪物奇妙物语

宇宙无敌超级美少男的怪物奇妙物语

首页 新随笔 联系 管理

RemoteDesktopConnection\src\Program.cs

#define debug
using System;
using System.Text.RegularExpressions;

namespace RDP
{
    class Program
    {
        static void Main(string[] args)
        {

            var info = new LogInfo();
        #if debug
            Console.WriteLine("please enter ipAddress");
            while (true)
            {
                info.Ipaddress = Console.ReadLine();
                if (new Regex(RdpConstant.IpaddressPatten).IsMatch(info.Ipaddress))
                {
                    break;
                }
            }
            Console.WriteLine("please enter username");
            info.Username = Console.ReadLine();
            Console.WriteLine(info.Username);
            Console.WriteLine("please enter password");
            info.Password = Console.ReadLine();
         #else
            info.Ipaddress = "120";
            info.Username = "Adm";
            info.Password = "wu";
        #endif
            RdpHandler.Rrocess(info);
        }
    }
}



  • # 号开头的代码叫做预处理器指令,它们是编译器的命令,影响编译过程。这些命令指定了哪些代码段要编译或者如何处理特定的错误和警告。C# 预处理器指令以 # (井号) 符号开始,每个预处理器指令只占一行。预处理器指令不需要分号结束,而是用换行符结束。

您的代码中使用了以下几种预处理器指令:

  • define: 用于定义一个符号,例如 #define debug 定义了一个名为 debug 的符号。定义的符号可以用于 #if 指令中的条件编译,如果符号被定义了,那么 #if 指令中的表达式就为真。

  • if: 用于测试一个预处理器表达式是否为真,例如 #if debug 测试 debug 符号是否被定义。#if 指令后面必须跟着一个 #endif 指令。#if 指令中的代码只有在表达式为真时才会被编译。

  • else: 用于和 #if 指令配合,创建复合条件指令,例如 #if debug ... #else ... #endif。#else 指令中的代码只有在 #if 指令中的表达式为假时才会被编译。

  • endif: 用于和 #if 指令配合,表示条件指令的结束,例如 #if debug ... #endif。

您的代码中的预处理器指令的作用是:

  • 如果定义了 debug 符号,那么程序会从控制台读取用户输入的 IP 地址、用户名和密码,并用正则表达式验证 IP 地址的格式是否正确。
  • 如果没有定义 debug 符号,那么程序会使用固定的 IP 地址、用户名和密码。
  • 然后程序会调用 RdpHandler.Rrocess(info) 方法,处理用户的远程桌面连接请求。

总之就是,注释掉上面#define,就会执行#else后面的语句,相当于可以用来跳过一部分代码(#if)的执行

posted on 2024-01-31 19:06  超级无敌美少男战士  阅读(51)  评论(0编辑  收藏  举报