我试图找到我的问题的明确答案,它不是网站上任何其他问题的重复.在SO和其他几个网站上,我已经阅读了很多关于此的帖子和相关问题.例如,这是一个关键答案(许多其他人被标记为dulpicates并重定向到这个):在C#中VB的Asc()和Chr()函数的等价物是什么?
我正在将VBA宏转换为C#.在VBA中chr(7)可以简单地连接到一个string好像chr()会产生一个string.为什么不能在C#中完成?
不幸的是,答案并不清楚,很多时候他们说这是正确的用法:
string mystring=(char)7;
Run Code Online (Sandbox Code Playgroud)
然而它给了我一个编译器错误,因为它不作为一个字符串进行评估.
我不得不用它来使它工作:
string mystring=((char)7).ToString();
Run Code Online (Sandbox Code Playgroud)
这相当于VB Chr()函数,实际上VB中的Chr()计算为字符串.
我的问题是这样的:我总是需要转换char到string明确或有一些情况下,其转换在含蓄?
更新:
Per @ Dirk的答案,这也有效:
string mystring = "" + (char)7;
Run Code Online (Sandbox Code Playgroud)
这并没有减少我的神秘感.如果连接起作用,为什么没有隐式转换?
我希望得到VB Chr()与C#中的等价物之间差异的完整解释.我很感激任何我可以阅读的参考文献,甚至是例子.提前致谢.
我试图将VB.NET代码转换为C#代码.
这是我的VB.NET代码:
Dim Part1 As String = "Some string"
Dim p_str As String
For I = 1 To Len(Part1)
p_str = Chr(Asc(Mid$(Part1, I, 1)) + 17)
Next
Run Code Online (Sandbox Code Playgroud)
我把它翻译成C#就像这样:
string Part1 = "Some string";
string p_str = null;
for (I = 0; I <= Part1.Length - 1; I++)
{
p_str = Convert.ToChar((Part1.IndexOf(Part1.Substring(I, 1)) + 65) + 17).ToString();
}
Run Code Online (Sandbox Code Playgroud)
谁能告诉我这是否正确?
我似乎无法正确地将以下内容从VB.NET转换为C# -
iKeyChar = Asc(mid(g_Key, i, 1))
iStringChar = Asc(mid(strCryptThis,i,1))
Run Code Online (Sandbox Code Playgroud)
这是我转换的C#代码,它似乎没有输出等价值 -
iKeyChar = Convert.ToInt32(g_Key.Substring(i, 1));
iStringChar = Convert.ToInt32(strCryptThis.Substring(i, 1));
Run Code Online (Sandbox Code Playgroud)
任何帮助是极大的赞赏!
我想将旧的VB6项目升级到更新的技术,我在下面有这些值,不知道如何翻译它们.
Chr(&H31) & Chr(&H1) & Chr(&H50) & Chr(&H31) & Chr(&H17)
Run Code Online (Sandbox Code Playgroud)
所以我的第一个问题是如何识别这些?它是十六进制值还是其他什么?我似乎没有在ascii表中找到它们.'H'代表什么?
其次,我如何制作ac#string呢?
我有这个代码:
Dim sCenter As String
sCenter = Chr(27) + Chr(97) + Chr(1)
Run Code Online (Sandbox Code Playgroud)
我正在尝试转换为C#代码.在线转换器总是无法转换...... :(
那么,C#等价物是Chr(number)什么?
也许 Char.ConvertFromUtf32(10);