我疯了吗? c#/ static修饰符

时间:2010-12-02 17:24:46

标签: c# static-variables

我有下面的代码,奇怪的是它继续返回相同的值(即使filename)不同,如果我在同一个请求中多次调用它。

我刚刚完成代码,甚至stringbytes完全相同(即GetBytes(string))返回相同的值。

    public static string Base64EncodeString(string filename)
    {
        var stringbytes = System.Text.Encoding.Default.GetBytes(filename);
        return Convert.ToBase64String(stringbytes);
    }

3 个答案:

答案 0 :(得分:5)

我怀疑你没有看到你认为你所看到的。如果您使用不同的filename值调用它,将不会返回相同的值...除非您使用Encoding.Default不支持的字符。 (我不建议使用Encoding.Default,除非确实需要特定于平台的编码。)

答案 1 :(得分:1)

您的代码看起来是正确的。如果它不是Jon Skeet建议的编码问题,我猜你在某处有一个静态fileName和/或stringbytes变量,并且发布的代码与原始代码不是100%相同。

答案 2 :(得分:0)

您是否检查了要加载的文件?您可能只是复制了要打开的文件,为其指定了不同的名称,并且没有修改内容。