高手帮忙看看Delphi代码转C#代码问题
Delphi代码如下:
function Tfsoftsn.getcode(name:string):string;
var str,s0,s1:string;
i,j,u,n,k,m:integer;
begin
s0:='V9WXYZAIN5G6QC4LM1RBPEFG23JH7ST8UKBA';
m:=length(trim(name));
s1:='';
k:=0;
for u:=1 to 4 do
begin
for j:=1 to 5 do
begin
for i:=1 to m do
begin
k:=k+ord(name[i])*i*(i+1)*j*(j+3)*(j+5)*u*(u+7)*(u+9)*(u+11);
end;
s1:=s1+copy(s0,(k mod 37),1);
end;
if u<>4 then
s1:=s1+'-';
end;
result:=s1;
end;
C#代码如下:
string name = "北厦A1中港";
int m = 0;
int k = 0;
string s1 = "";
string s0 = "V9WXYZAIN5G6QC4LM1RBPEFG23JH7ST8UKBA";
m = (name.Trim()).Length;
char[] word = name.ToCharArray();
for (int u = 1; u <= 4; u++)
{
for (int j = 1; j <= 5; j++)
{
for (int i = 1; i <= m; i++)
{
int f = (int)word[i - 1];
int c=i * (i + 1) * j * (j + 3) * (j + 5) * u * (u + 7) * (u + 9) * (u + 11);
k = k + f * c;
}
int start = k % 37; //int start = Math.Abs(k % 37);//有时候总取到负值?
s1 = s1 + s0.Substring(start, 1);//负值索引问题!
}
if (u != 4)
{
s1 = s1 + "-";
}
}
return s1;