有一段程序代码主要是高低位的位置调换~我是在Form1.cs这样写的
      FileStream AddStream = new FileStream(ExePath + "BinaryMergerSonicData.BIN", FileMode.Create); 
    BinaryWriter AddWriter = new BinaryWriter(AddStream);         HLbyte = (int)TempStream.Length;
      HLbyte = HLbyte >> 24;
      AddWriter.Write((byte)HLbyte);
      HLbyte = (int)TempStream.Length;
      HLbyte = HLbyte >> 16;
      AddWriter.Write((byte)HLbyte);
      HLbyte = (int)TempStream.Length;
      HLbyte = HLbyte >> 8;
      AddWriter.Write((byte)HLbyte);
      HLbyte = (int)TempStream.Length;
      HLbyte = HLbyte >> 0;
      AddWriter.Write((byte)HLbyte);因为使用的频率很高,想写到Class 类~ 但是好像都不正确??有问题           public static string HLbyte(int inval)
            {              
                string  temp = "";      int val = 0;
                val = inval;
                val = val >> 24;
                temp = temp +(byte) val;
                val = inval;
                val = val >> 16;
                temp = temp + (byte)val;
                val = inval;
                val = val >> 8;
                temp = temp + (byte)val;
                val = inval;
                val = val >> 0;
                temp = temp + (byte)val;
                return temp;
            }
// return 后要能给Form1.cs AddWriter.Write写入

解决方案 »

  1.   

    想写到Class 类~ 但是好像都不正确??有问题 你都??有问题了,我怎么看首先你的HLbyte是个方法,太乱了,你理清楚再问吧
      

  2.   

    return temp只有一个,而你上面说的是每个都要AddWriter.Write写入.可以把AddWriter.Write写入也写到CLASS里面去..写一个VOID CLASS..
      

  3.   

    主要是想要简化,看看能不能写成这样
    AddWriter.Write(New_Hlbyte(TempStream.Length));
      

  4.   

    你把它真正写成一个类就行了,你这不是类,还有三楼说的VOID CLASS是什么玩意
      

  5.   

    我汗class TestClass
    {
         //你的方法放这里
         public static string HLbyte(int inval) 
                {              
                    string  temp = "";      int val = 0; 
                    val = inval; 
                    val = val >> 24; 
                    temp = temp +(byte) val; 
                    val = inval; 
                    val = val >> 16; 
                    temp = temp + (byte)val; 
                    val = inval; 
                    val = val >> 8; 
                    temp = temp + (byte)val; 
                    val = inval; 
                    val = val >> 0; 
                    temp = temp + (byte)val; 
                    return temp; 
                } 
    }
    string str = TestClass.HLbyte(param)
      

  6.   

    OK~OK~ 是我说的不清楚!!是这样的!!某个档案长度为 2712847316 转16进位=A1B2C3D4
    一般C#写入到文件时会是 D4C3B2A1 这样写入的!
    我用 “>>” 位移的方式能够达到 A1B2C3D4 的方式写入。
    但是因为使用的次数频繁,程序代码会一堆重复的代码,不好阅读!
    所以想能不能额外写个方法来简化。string ExePath = System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase;
    FileStream AddStream = new FileStream(ExePath + "SonicData.BIN", FileMode.Create); 
    BinaryWriter AddWriter = new BinaryWriter(AddStream);
    AddWriter.Write(2712847316); //16进位=A1B2C3D4
    AddWriter.Close();
      

  7.   

    可不可以放到
                 ArrayList arrl = new ArrayList();
                    arrl.Reverse()
    反转
      

  8.   


    public static BinaryWriter GetHLbyte(FileStream  FS) 
    {
          BinaryWriter AddWriter = new BinaryWriter(FS);  
          int FSbyte = (int)FS.Length; 
          byte HLbyte = (byte)(FSbyte >> 24); 
          AddWriter.Write(HLbyte); 
          HLbyte = (byte)(FSbyte >> 16); 
          AddWriter.Write(HLbyte); 
          HLbyte = (byte)(FSbyte >> 8); 
          AddWriter.Write(HLbyte); 
          HLbyte = (byte)(FSbyte >> 0); 
          AddWriter.Write(HLbyte); 
          return AddWriter;
    }
      

  9.   


    public static BinaryWriter GetHLbyte(int FileLength, FileStream  OutFS) 
    {
          BinaryWriter AddWriter = new BinaryWriter(OutFS);  
          byte HLbyte = (byte)(FileLength >> 24); 
          AddWriter.Write(HLbyte); 
          HLbyte = (byte)(FileLength >> 16); 
          AddWriter.Write(HLbyte); 
          HLbyte = (byte)(FileLength >> 8); 
          AddWriter.Write(HLbyte); 
          HLbyte = (byte)(FileLength >> 0); 
          AddWriter.Write(HLbyte); 
          return AddWriter;
    }
      

  10.   

    感谢 bidisty 指导~这就是我想要的! 原来是这样喔~
      

  11.   

    请问用 bidisty 您提示的方法是不是就无须return 了!
     
           public void GetHLbyte(uint FileLength, FileStream OutFS)
            {
                BinaryWriter AddWriter = new BinaryWriter(OutFS);
                byte HLbyte = (byte)(FileLength >> 24);
                AddWriter.Write(HLbyte);
                HLbyte = (byte)(FileLength >> 16);
                AddWriter.Write(HLbyte);
                HLbyte = (byte)(FileLength >> 8);
                AddWriter.Write(HLbyte);
                HLbyte = (byte)(FileLength >> 0);
                AddWriter.Write(HLbyte);
                //return AddWriter;
            }
      

  12.   

    看你自己的需要了。我是怕你还要用到AddWriter才返回的。