public class Class1
{
public string Encode(string strCode)
{
char p;
string AscP=""; for(int i=0; i<strCode.Length; i++)
{
p = strCode[i];
if (i%3 ==1)
AscP = AscP + (char)(p+3);
else if(i%3 ==2)
AscP = AscP+(char)(p+5);
else
AscP = AscP+(char)(p+1);
} return AscP;
} public string Decode(string strPass)
{
char p;
string AscP=""; for(int i=0; i<strPass.Length; i++)
{
p = strPass[i];
if (i%3 ==1)
AscP = AscP + (char)(p-3);
else if(i%3 ==2)
AscP = AscP+(char)(p-5);
else
AscP = AscP+(char)(p-1); }
return AscP;
}

解决方案 »

  1.   

    string vv;
    Class1 st = new Class1();
    vv = st.Encode("ABC");
    MessageBox.Show(vv);//显示BEH
    vv= st.Decode(vv);
    MessageBox.Show(vv);//显示ABC
      

  2.   

    public class Class1
    {
    public Class1()
    {
    //
    // TODO: 在此处添加构造函数逻辑
    //
    }

    public string [] Encode(string [] strCode)
    {
    char p;
    string [] AscP=new string[strCode.Length];
    string a; for(int i=0; i<strCode.Length; i++)
    {
    a=strCode[i];
    p = Convert.ToChar(a);
    if (i%3 ==1)
    AscP[i] = AscP[i] + (char)(p+3);
    else if(i%3 ==2)
    AscP[i] = AscP[i]+(char)(p+5);
    else
    AscP[i] = AscP[i]+(char)(p+1);
    } return AscP;
    } public string [] Decode(string [] strPass)
    {
    char p;
    string a;
    string []AscP=new string[strPass.Length]; for(int i=0; i<strPass.Length; i++)
    {a=strPass[i];
    p = Convert.ToChar(a);
    if (i%3 ==1)
    AscP[i] = AscP[i] + (char)(p-3);
    else if(i%3 ==2)
    AscP[i] = AscP[i]+(char)(p-5);
    else
    AscP[i]= AscP[i]+(char)(p-1); }
    return AscP;
    }
    }你在函数调用前把字符窜转化成数组
      

  3.   

    不行啊,我在Delphi里执行Function Encode(strCode : String) : String ;
    和在C#里执行Encode(string strCode)
    产生的结果不一样的
      

  4.   

    呵呵~~~是的,我的那个错了,下面这个应该对了吧:using System;namespace WindowsApplication4
    {
    /// <summary>
    /// Class1 的摘要说明。
    /// </summary>
    public class Class1
    {
    public string Encode(string strCode)
    {
    char p;
    string AscP=""; for(int i=0; i<strCode.Length; i++)
    {
    p = strCode[i];
    if (i%3 ==0)
    AscP = AscP + (char)(p+3);
    else if(i%3 ==1)
    AscP = AscP+(char)(p+5);
    else
    AscP = AscP+(char)(p+1);
    } return AscP;
    } public string Decode(string strPass)
    {
    char p;
    string AscP=""; for(int i=0; i<strPass.Length; i++)
    {
    p = strPass[i];
    if (i%3 ==0)
    AscP = AscP + (char)(p-3);
    else if(i%3 ==1)
    AscP = AscP+(char)(p-5);
    else
    AscP = AscP+(char)(p-1); }
    return AscP;
    }
    }
    }