【问题标题】:The meaning of this code about converting in C#?这段代码关于在 C# 中转换的含义是什么?
【发布时间】:2020-07-08 14:33:00
【问题描述】:

我有一个包含如下代码的函数:

Random x = new Random();
int key = x.Next(0x21, 0x7B);
string nxt = Convert.ToString(key.ToString("X")) + 
Convert.ToString(key.ToString("X"))
 + Convert.ToString(key.ToString("X"))
 + Convert.ToString(key.ToString("X"));

我是 C# 新手,请帮助我,非常感谢

【问题讨论】:

    标签: c# type-conversion


    【解决方案1】:

    该代码在0x210x7B 之间选择一个随机数,将其转换为十六进制字符串并在nxt 中重复四次。

    有更好的方法可以多次创建单个字符的字符串(例如,接受一个字符和一个计数的字符串构造函数),而Convert.ToString 调用是无用的,因为int.ToString 已经返回一个字符串。

    【讨论】:

      【解决方案2】:

      前两行选择一个介于 33 和 122 之间的随机整数 inclusive.Next() 中的 0xs 表示这些数字以 hexadecimal notation 表示)。

      key.ToString("X") 部分采用随机整数 converts it to hexadecimal notation,并将其作为字符串返回。

      正如 Blindy 指出的那样,Convert.ToString() 是多余的,并且没有必要,因为它将字符串转换为字符串。

      最终的“nxt”变量将包含重复四次的新十六进制数字(作为字符串)。

      这里有几种其他方法可以让该字符串重复四次:

      string nxt = new StringBuilder().Insert(0, key.ToString("X"), 4).ToString();
      
      string nxt = String.Concat(Enumerable.Repeat(key, 4));
      
      string nxt = $"{key}{key}{key}{key}";
      

      【讨论】:

        猜你喜欢
        • 2017-02-11
        • 2011-09-09
        • 1970-01-01
        • 2017-11-21
        • 1970-01-01
        • 2015-04-26
        相关资源
        最近更新 更多