日期:2014-05-19  浏览次数:20972 次

c类型转为c#.char[] 对应c#什么类型?
有一个结构体在c中定义的,
里面有一个项是char   name[40]

看了下帮助在vb6.0中是直接转为string   *40,现在在vb.net和在c#中如何转化?
我在vb.net中使用space(40),name   =new   string( '/0 ',40)都没有用报错是非法访问不可写的内存.而在vb6.0中是没有问题的.关键就是要定义一个定长的string.

------解决方案--------------------
StringBuilder sb = new StringBuilder(40)
------解决方案--------------------
byte[]吧
------解决方案--------------------
char name[40]
就是40个长度的字符数组嘛,在c#中
char[] 不可以吗?
List <Char> 不可以吗?

用StringBuilder到也是可以的。
------解决方案--------------------
关键就是要定义一个定长的string

你可以在赋值的时候进行限制啊!
// Unicode Mathematical operators
char [] charArr1 = { '\u2200 ', '\u2202 ', '\u200F ', '\u2205 '};
String szMathSymbols = new String(charArr1);

// Unicode Letterlike Symbols
char [] charArr2 = { '\u2111 ', '\u2118 ', '\u2122 ', '\u2126 '};
String szLetterLike = new String (charArr2);
-------------------------------

另外可以
String.PadLeft 或 String.PadRight 在左边或右边添加空格保证长度

------解决方案--------------------
传入StringBuilder不要在参数前添加ref
------解决方案--------------------
byte[]?
------解决方案--------------------
StringBuilder
------解决方案--------------------
char[] c = new char[40];

yourmethod(ref c);
------解决方案--------------------
C/C++ 中字符串实际上是 字符数组,

.net 中直接用 System.String 表示


------解决方案--------------------
用 string 即可,何必那么麻烦
------解决方案--------------------
数组不是定长的吗?

------解决方案--------------------
byte[] char[]