c# - 无法从字符转换为字符串

标签 c# .net string winforms messagebox

我希望弹出一个消息框,显示通过文本框从用户那里接受的字符串的第一个字符,当用户单击消息框的确定按钮时,下一个字符会在消息框中弹出,直到达到 null。

我已经创建了这个程序,但由于明显的原因,它给出了以下错误: “无法从‘char’转换为‘string’” 请提出一些更改建议。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace loop_Message
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void submit_Click(object sender, EventArgs e)
        {
            string str;
            str = stringTxt.Text;
            for (int i = 0; str[i] != null; i++)
            {
                MessageBox.Show(str[i]);
            }
        }
    }
}

最佳答案

使用这个:

foreach (char c in stringTxt.Text)
{
    MessageBox.Show(c.ToString());
}

MessageBox.Show()需要一个 string 参数,因此您需要将字符转换为字符串。

你的循环:

for (int i = 0; str[i] != null; i++)

引发 IndexOutOfRangeException.NET 中的字符串不是 C 中的字符数组。它们实际上以 null 结尾,但您无法使用其索引(等于 Length)访问 null 字符。 CLR 检查索引,因为它超出了字符串的有效索引范围(0Length-1),抛出异常。

关于c# - 无法从字符转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15084064/

相关文章:

C#:将原语动态转换为 Nullable<>

c# - 如何比较Azure资源配置

Java:更改预填充的字符串数组列表中的元素

javascript - 文本替换后匹配子字符串的光标位置

c# - Crystal Reports中如何获取列的总和?

c# - 使用 iTextSharp 更改 PDF 的字体

c# - ExceptionHandler 被调用但不返回 JSON

c# - 如何替换二进制文件中的 unicode 字符串?

c# - 在哪些情况下应该使用某些类型的 IoC 框架

ios - 在搜索栏中搜索空字符串 : Objective-c