简短问题: 是否可以在C#中创建固定大小的字符串? 我知道在VB中可能声明如下:str AS string * 20C#中的固定字符串大小#
长篇小说: 我需要读取包含20字节字段的二进制文件到字符串中。我将文件的内容读入对象(类)。我想限制类定义中的对象中的字符串。
非常感谢您的关注。
ROI
简短问题: 是否可以在C#中创建固定大小的字符串? 我知道在VB中可能声明如下:str AS string * 20C#中的固定字符串大小#
长篇小说: 我需要读取包含20字节字段的二进制文件到字符串中。我将文件的内容读入对象(类)。我想限制类定义中的对象中的字符串。
非常感谢您的关注。
ROI
您应该创建string
型,在二传手检查value.Length
和截断,或抛出一个异常的属性。
我明白,不可能直接在C#中声明一个固定大小的字符串? – roishabtai 2011-04-10 13:29:46
声明一个固定长度的字符串实际上没有意义。一个字符串是一个字符串。你在做什么? – SLaks 2011-04-10 13:33:47
我试图提取二进制文件为VB6应用程序创建到C#对象。 – roishabtai 2011-04-10 13:38:22
您应该使用'StringBuilder'
解决您的问题。
StringBuffer是Java,它是C#中的StringBuilder。 – mikel 2011-04-10 13:20:20
是的,你是对的。这是因为我现在正在琢磨:) – iehrlich 2011-04-10 13:21:12
其实它的StringBuilder同时在java和c#中。 StringBuffer是javas老,StringBuilder的同步版本。 – atamanroman 2011-04-10 13:36:08
您可以声明并填充一个固定大小的char数组,然后将其传递给String对象构造函数以从中创建字符串。
var newString = new string(theCharArray);
尝试使用VBFixedString属性。这是一个仅限信息的属性,并不限制字符串的实际长度。它用于与需要VB6样式固定长度字符串的API调用进行通信。请参阅http://msdn.microsoft.com/en-us/library/x14b6s77.aspx
谢谢 - 但我想使用“纯”的C#对象 – roishabtai 2011-04-10 14:30:41
如何阅读文件? – SLaks 2011-04-10 13:14:25
这只适用于VB 6.它也不可能在VB.NET中。 CLR不支持固定长度的字符串。为什么你需要限制尺寸?如果您正在阅读的文件只有20个字节,那么结果字符串将会是多长时间。 – 2011-04-10 13:22:57
我没有提到我的问题,为了限制我的问题的文本:该文件是包含菜单项的详细信息的二进制:大小(长),BasicButtonHeight(长)BasicBurronWidth(长)行(长),列(长) ,ImagesPath(字符串20字节长)和LabelsFilePath(也是20字节长的字符串)。该文件是为VB6应用编写的,我需要为C#应用程序转换数据。 – roishabtai 2011-04-10 13:35:20