C# 中的路径字符串连接问题

发布于 2024-09-04 01:56:10 字数 733 浏览 6 评论 0原文

我想输出 D:\Learning\CS\Resource\Tutorial\C#LangTutorial 但无法工作。编译器错误错误CS0165:使用未分配的局部变量'StrPathHead 请给我一些关于如何纠正我的代码或针对我的案例的其他更好解决方案的建议。谢谢。

static void Main(string[] args)
{
    string path = "D:\\Learning\\CS\\Resource\\Book\\C#InDepth";
    int n = 0;

    string[] words = path.Split('\\');
    foreach (string word in words)
    {

            string StrPathHead;
            string StrPath;
            Console.WriteLine(word);

            if (word == "Resource")
            {
                StrPath = StrPathHead + word + "\\Tutorial\\C#LangTutorial"; 
            }
            else
            {
                StrPathHead += words[n++] + "\\";
            }

    }
}

I want to output D:\Learning\CS\Resource\Tutorial\C#LangTutorial
But can't work. Compiler error error CS0165: Use of unassigned local variable 'StrPathHead
Please give me some advice about how to correct my code or other better solution for my case. Thank you.

static void Main(string[] args)
{
    string path = "D:\\Learning\\CS\\Resource\\Book\\C#InDepth";
    int n = 0;

    string[] words = path.Split('\\');
    foreach (string word in words)
    {

            string StrPathHead;
            string StrPath;
            Console.WriteLine(word);

            if (word == "Resource")
            {
                StrPath = StrPathHead + word + "\\Tutorial\\C#LangTutorial"; 
            }
            else
            {
                StrPathHead += words[n++] + "\\";
            }

    }
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

难得心□动 2024-09-11 01:56:11

我同意 Mitch Wheat 的观点,但是你可以通过初始化 StrPath

string StrPath = string.Empty;

来解决当前的问题,正如其他人所说,声明 StrPath > 在循环之外。

来自 MSDN

<块引用>

C# 编译器不允许使用未初始化的变量。如果编译器检测到使用了可能尚未初始化的变量,则会生成 CS0165。

使用new创建对象的实例或分配值。

I agree with Mitch Wheat, but you could solve your current problem initializating StrPath

string StrPath = string.Empty;

And as other people say, declare StrPath outside of the loop.

From MSDN

The C# compiler does not allow the use of uninitialized variables. If the compiler detects the use of a variable that might not have been initialized, it generates CS0165.

Use new to create an instance of an object or assign a value.

海未深 2024-09-11 01:56:11

StrPath 初始化为空字符串 ("")在循环外部声明它。您可能还需要考虑使用 StringBuilder,因为 C# 中的 String 是不可变的。

Initialize StrPath to the empty string ("") and declare it outside your loop. You may also want to consider using a StringBuilder since Strings in c# are immutable.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文