我想定义一个类,类里定义几个成员变量 
 构造函数里传入一个字符串
 然后变量根据字符串的字节长度自动赋值
 比如第一个变量我只要参数的前4个字节
 第二个变量 我只要5-8字节
 
 public Class A
 {
    string m;
    string n;
    public class(string str)
   {
      n = ?;
      m = ?;
   }
     
 } 这是类,如果用结构是不是更好些?

解决方案 »

  1.   

    类效率高,在传给函数或返回的时候,引用类型
    struct是值类型;
      

  2.   

    你用
    Encoding.Default.GetBytes(str);获取字节数,再判断字节数长度,分别获取指定长度的;public Class A
    {
    string m;
    string n;
    public class(string str)
    {
    byte[] bts = Encoding.Default.GetBytes(str);
    if(bts.Length >= 4) {
     byte[] mb = new byte[4];
     for(int i=0;i<4;i++)
       mb[i] = bts[i];
     m = Encoding.Default.GetString(mb);
    }
    if(bts.Length >= 8) {
     byte[] mb = new byte[4];
     for(int i=0;i<4;i++)
       mb[i] = bts[i+5];
     n = Encoding.Default.GetString(mb);
    }
    }
    }应该达到你要的效果了。哎呀,wb敲的代码,忒不工整....累
      

  3.   

    构造好像写错了吧,可以用str.substring();
      

  4.   

    public ClassA
    {
    string m;
    string n;
    public classClassA(string str)
    {
    if(str.Length>=8){
    m = str.SubString(0,4);
    n = str.SubString(5,8);
    }
    }}
      

  5.   

    substring 肯定是不行 我要根据字节取,如果字符串里有汉字,substring把汉字就算一个字节了
      

  6.   

    .....上面几位好像都没实践下,错误不少啊,还是给个正确的吧,可是验证过的:
    public class ClassA
    {
    public string m;
    public string n;
    public ClassA(string str)
    {
    if(str.Length>=8){
    m = str.Substring(0,4);
    n = str.Substring(5,4);
    }
    }
    }