相关疑难解决方法(0)

C#字符串引用类型?

我知道C#中的"string"是一个引用类型.这是在MSDN上.但是,此代码不能正常工作:

class Test
{
    public static void Main()
    {
        string test = "before passing";
        Console.WriteLine(test);
        TestI(test);
        Console.WriteLine(test);
    }

    public static void TestI(string test)
    {
        test = "after passing";
    }
}
Run Code Online (Sandbox Code Playgroud)

输出应该在"传递之前""传递之后",因为我将字符串作为参数传递并且它是引用类型,第二个输出语句应该识别在TestI方法中更改了文本.但是,我在"通过之前""在通过之前"得到它似乎是通过值传递而不是通过ref.我知道字符串是不可变的,但我不知道这将如何解释这里发生的事情.我错过了什么?谢谢.

c# string types reference

157
推荐指数
8
解决办法
12万
查看次数

string.Replace(或其他字符串修改)不起作用

对于以下代码,我无法开始string.Replace工作:

someTestString.Replace(someID.ToString(), sessionID);
Run Code Online (Sandbox Code Playgroud)

当我调试并检查参数时,它们具有我期望的值 - 即someID.ToString()得到"1087163075",并且sessionID具有"108716308"并someTestString包含"1087163075".

我不知道为什么这不会改变 someTestString

完整样本:

string someTestString = 
      "<a href='myfoldert/108716305-1.jpg' target='_blank'>108716305-1.jpg</a>"
someTestString.Replace("108716305", "NewId42");  
Run Code Online (Sandbox Code Playgroud)

结果(in someTestString)应该是这样的:

"<a href='myfoldert/NewId42-1.jpg' target='_blank'>NewId42-1.jpg</a>" 
Run Code Online (Sandbox Code Playgroud)

但它没有改变.someTestString在命中我的代码后,字符串保持不变.

c#

12
推荐指数
1
解决办法
1万
查看次数

标签 统计

c# ×2

reference ×1

string ×1

types ×1