gpt4 book ai didi

c# - 如何在 C# 中定义 "include"?

转载 作者:太空宇宙 更新时间:2023-11-03 19:52:19 26 4
gpt4 key购买 nike

我是一名 C++ 程序员,刚开始使用 .NET 在 C# 中编写 Windows 应用程序。

我正在查看 MSDN ( https://msdn.microsoft.com/en-us/library/chf6fbt4.aspx) 上的一些示例代码,我看到了以下(部分)代码:

const int LOGON32_PROVIDER_DEFAULT = 0;
//This parameter causes LogonUser to create a primary token.
const int LOGON32_LOGON_INTERACTIVE = 2;

// Call LogonUser to obtain a handle to an access token.
bool returnValue = LogonUser(userName, domainName, Console.ReadLine(),
LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT, out safeTokenHandle);

所以变量 LOGON32_PROVIDER_DEFAULTLOGON32_LOGON_INTERACTIVE 在示例代码中明确定义。相反,如果我用 C++ 编写此代码,我可以只包含已经定义了这些变量的 Winbase.h:

#define LOGON32_LOGON_INTERACTIVE       2
#define LOGON32_LOGON_NETWORK 3
#define LOGON32_LOGON_BATCH 4
#define LOGON32_LOGON_SERVICE 5
#define LOGON32_LOGON_UNLOCK 7

有没有办法在 C# 中做同样类型的事情?那么,是否有某种魔力使我能够使用 LOGON32_LOGON_INTERACTIVE 而无需自己在 C# 代码中定义它?我的意思不是重用 header ,而是它是如何在 C# 中的 General 中完成的。如果我必须手动复制粘贴这些值,这对我来说似乎很容易出错。除此之外,它不会完全感谢输入这些定义的人所做的辛勤工作!

最佳答案

以同样的方式,C++ 试图使您的代码比 C 代码更加分类,具有类而不是函数(在 C 的情况下,您将尝试按照惯例通过使用相同的长前缀),C# 强制自己更多地对代码进行分类,以避免更多你刚刚描述的 C++ 等效项的“全局项”实践。

因此,您需要 C# 中的常量?很好,只要把它放在一个类中,然后从其他需要它的代码中使用 Class.MY_CONSTANT。

不过,在这种特殊情况下,似乎有几个常量引用同一个“域”,所以对我来说闻起来像是枚举的成员。学习 C# 枚举,它们非常有用,可以让您拥有比 C++ 等效代码更简洁的代码。

关于c# - 如何在 C# 中定义 "include"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37465179/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com