草庐IT

CHAR_LENGTH

全部标签

c# - 如何从 C# 将 const char* 传递给 C 函数?

我尝试从我的C#应用程序中的外部DLL调用纯C函数。此函数定义为voidset_param(constchar*data)现在我在使用这个函数时遇到了一些问题:如何在C#代码中指定这个“const”?publicstaticexternvoidset_param(sbyte*data)似乎遗漏了“const”部分。调用此函数时,如何传递普通的8位C字符串?调用set_param("127.0.0.1")会导致错误消息,“无法从‘string’转换为‘sbyte’”*。 最佳答案 看起来您将使用ANSI字符集,因此您可以像这样声明P/

c# - 我应该将什么 'length' 参数传递给 SqlDataReader.GetBytes()

我有一个SqlDataReader,需要使用SqlDataReader.GetBytes()方法从中读取一个varbinary(max)列。此方法填充字节数组,因此需要知道要读取的数据长度。这是我感到困惑的地方。很明显,我想读取此行/列中从数据库返回的所有数据,那么我应该传递什么“长度”参数?据我所知,SqlDataReader没有提供任何方法来发现可用数据的长度,因此这种方法对我来说似乎很尴尬。我很想在这里传递int.MaxValue并忘记这个问题,但我不喜欢这个问题。我知道我可以调用byte[]value=(byte[])dataReader["columnName"];..这似乎

c# - 如何将 C# 字符串转换为 Span<char>? (跨度<T>)

如何将字符串转换为Span?SpanmySpan="Mysamplesourcestring"; 最佳答案 Span和friend都包含在.NETCore2.1中,因此不需要安装额外的NuGet包。DanSorensen'sanswer根据预览在那个日期是正确的,但现在它已经过时了。对于字符串,扩展方法是AsSpan和AsMemory,即返回ReadOnlySpan和ReadOnlyMemory分别。显式AsReadOnlySpan不见了,因为strings是不可变的,所以找回Span是没有意义的(这是可写的)。

c# - 在 C# 中附加字符串与 char 之间是否有任何惩罚

几年前在使用Java进行开发时,我了解到如果我有一个字符而不是一个具有一个字符的字符串,最好附加一个字符,因为VM不必对中的字符串值进行任何查找它的内部字符串池。stringstringappend="Hello"+name+".";stringcharappend="Hello"+name+'.';//better?当我开始使用C#编程时,我从未想过它与它的“VM”一样的可能性。我遇到了C#StringTheory—Stringinternpool这表明C#也有一个内部字符串池(我想如果没有的话会很奇怪)所以我的问题是,在连接到关于C#的字符串时,附加一个char而不是字符串实际上有

c# - 在 C# 中将 bool 表达式转换为 char

当我遇到如下问题时,我通过了.NET测验。Charch=Convert.ToChar('a'|'e'|'c'|'a');在控制台中,我们可以看到ch变量的输出是g。有人能描述一下发生了什么吗?谢谢! 最佳答案 “|”是二元或运算符。'a'binaryrepresentationis01100001'e'binaryrepresentationis01100101'c'binaryrepresentationis01100011OR的结果为01100111,其字符表示为g 关于c#-在C#

C# byte[] 和 char[] 有什么区别

很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visitthehelpcenter.关闭11年前。byte[]和char[]有什么区别?从使用角度进行更多区分。它们可以互换使用吗?

c# - 声明包含单引号/撇号的 char 值的最清晰方法

要在C#中声明一个char值,我们只需用单引号将字符括起来:'x'。但是声明是单引号/撇号的char值的“最清晰”方法是什么?我最终使用了"'"[0],尽管我曾期望''''可以工作(基于""可用于分隔字符串中的引号字符。是否有更明智、更简洁的选择? 最佳答案 您可以使用反斜杠转义引号:'\'' 关于c#-声明包含单引号/撇号的char值的最清晰方法,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/qu

c# - 在C#中将char隐式转换为int

我对隐式类型转换有疑问为什么这种隐式类型转换在C#中起作用?我了解到隐式代码通常不起作用。我这里有一个关于隐式类型转换的代码示例charc='a';intx=c;intn=5;intanswer=n*c;Console.WriteLine(answer); 最佳答案 转换会导致数据丢失。这里char是16位,而int是32位。因此,转换将在不丢失数据的情况下发生。现实生活中的例子:我们可以在没有外部帮助的情况下将小型容器放入大型容器中,反之亦然。 关于c#-在C#中将char隐式转换为i

c# - char 的 a += b 运算符实现与 a = a + b 相同吗?

这个问题在这里已经有了答案:Differencebetweena+=1anda=a+1inC#(3个答案)关闭5年前。发现了一个有趣的问题,即以下代码运行结果不同:charc='a';c+='a';//passedc=c+'a';//Cannotimplicitlyconverttype'int'to'char'.Anexplicitconversionexists(areyoumissingacast?)a+=b和a=a+b有区别吗,或者只是编译器的代码检查漏掉了?我的意思是为什么char+=char可以通过代码检查,而char=(char+char)考虑char=int?

c# - .NET 数组 - "Length"、 "Count()"和 "Rank"之间的区别

.NET数组的“Length”、“Count()”和“Rank”之间有什么区别? 最佳答案 Length是数组对象的属性,使用它是确定数组中元素数(Array.LengthinMSDNdocumentation)的最有效方法。Count()是一个LINQ有效相同的扩展方法。它适用于数组,因为数组是可枚举的对象。最好使用Length,因为Count()可能更昂贵(请参阅thisquestion进一步讨论和MSDNdocumentationonCount引用)。Rank是返回维数的属性(完全不同)。当你声明一个数组int[,]myArr