允许使用"@"字符作为前缀,以使关键字可用作标识符. 大多数.net开发人员都知道这一点.
但我们可能不知道:如果删除"@"前缀后两个标识符相同,则认为它们是相同的.
所以
static void Main(string[] args)
{
int x = 123;
Console.WriteLine(@x);
}
Run Code Online (Sandbox Code Playgroud)
绝对有效的代码并打印123到控制台.
我很好奇为什么我们在规范中有这样的规则,以及如何在现实世界中使用这个特征(如果它们不是关键字,那么用"@"作为标识符的前缀是没有意义的,对吧?).
有过载Convert.ToInt32的是采用Int32作为参数.但即使文档说基本没有任何反应,该方法返回其输入.
问题是为什么我们有这样的超负荷?有什么目的吗?谁能给我一个使用这种方法的例子?
我的想法:我认为我们可能拥有它,因为有一个重载需要Object.因此我们想要消除拳击等.但我不确定.
我想-1使用新的二进制文字功能声明文字:
int x = 0b1111_1111_1111_1111_1111_1111_1111_1111;
Console.WriteLine(x);
Run Code Online (Sandbox Code Playgroud)
但是,这不起作用,因为C#认为这是一个uint文字,Cannot implicitly convert type 'uint' to 'int'...因为我们处理二进制数据,所以我觉得这有点奇怪.
有没有办法-1在C#中使用二进制文字声明整数值?
我有一个与 Azure Active Directory 连接的 Azure 虚拟机。此 AD 中的用户将作为管理员添加到此计算机。其他人可以使用该用户的凭据成功通过 RDP 连接到计算机,但我收到错误消息“用于连接到远程 PC 的用户帐户不起作用。请重试”。好吧,我一整天都在努力。有谁知道是什么原因造成的?
有趣的是,我可以使用本地管理员通过 RDP 连接到计算机,但 AD 用户再次失败。
我尝试使用适用于 Mac 的 Microsoft 远程桌面、适用于 Windows 的 mstsc 以及远程桌面连接管理器进行连接。到处都是同样的结果。
我尝试了不同的用户名格式:
alex.sikilinda@mydomain.com- 其他人可以使用此格式成功登录AzureAD\alex.sikilinda@mydomain.com- 对于 Windows 客户端,出现相同的错误;对于 Mac 版 Microsoft 远程桌面,出现“您的会话因错误而结束。如果这种情况持续发生,请联系您的网络管理员寻求帮助。错误代码:0x807”AzureAD\AlexSikilindamstsc 错误 - “远程计算机已加入 AAD。如果您要登录工作帐户,请尝试使用工作电子邮件”,Mac - “您的会话因错误而结束。如果这种情况持续发生,请联系您的网络管理员以获取帮助。错误代码:0x807”Microsoft Remote Desktop for Mac 版本10.2.3 (1343)
Windows 10 版本 16299(也在另一台机器上尝试使用 1803,结果相同)。