C#将char数组转为字符串作为label文本时显示System.Char[]如何解决
问题原因&修复方案
char数组转字符串方法错误
char[]的默认ToString()方法只会返回类型名System.Char[],不会将字符内容拼接为字符串,你需要改用new string(lpt)来将字符数组转为正常字符串。Random实例化逻辑错误
每次循环都重新new Random()会因为随机种子默认取系统时钟,短时间内多次实例化的种子完全相同,导致生成的随机字母/数字全部重复,应该全局只实例化一次Random对象。代码存在笔误
- 你定义的字符数组变量名为
lpt,但赋值分隔符时写了rendszam[3] = '-',变量名不匹配会直接编译报错 - 给Label赋值的代码不完整,缺少
Text属性和赋值符号,应该是lpt_label.Text = completelpt
修正后完整代码
// 全局只实例化一次Random Random random = new Random(); char[] lpt = new char[7]; for (int i = 0; i < 3; i++) { lpt[i] = Convert.ToChar(random.Next(65, 91)); } // 修正变量名 lpt[3] = '-'; for (int i = 4; i < lpt.Length; i++) { int number = random.Next(49, 58); lpt[i] = Convert.ToChar(number); } // 修正字符数组转字符串的写法 string completelpt = new string(lpt); // 修正Label赋值逻辑 lpt_label.Text = completelpt;
内容的提问来源于stack exchange,提问作者viktorka4
相关产品推荐
相关产品推荐

