You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#实现密码隐藏功能:用等长星号替代原密码字符

解决方案

首先纠正你代码里的一个小问题:Display方法中你写的password是小写,而类的属性是大写的Password,这会导致编译错误,需要改成Password。

针对隐藏密码时输出与字符数对应的星号,有两种简单的实现方式:

方法1:利用string构造函数(最简洁)

C#的string类有一个构造函数可以直接生成重复指定次数的字符,完美匹配你的需求:

public void Display()
{
    if (!Hidden)
    {
        Console.WriteLine(Password);
    }
    else
    {
        // 生成与密码长度相同的星号字符串
        Console.WriteLine(new string('*', Password.Length));
    }
}

方法2:使用foreach循环遍历字符

如果你想用foreach循环实现,也可以逐个添加星号:

public void Display()
{
    if (!Hidden)
    {
        Console.WriteLine(Password);
    }
    else
    {
        string hiddenPassword = "";
        foreach (char c in Password)
        {
            hiddenPassword += '*';
        }
        Console.WriteLine(hiddenPassword);
    }
}

不过这种方式每次拼接字符串都会生成新的对象,性能不如第一种方法,推荐优先用第一种。

另外,判断布尔值时不需要写== false或== true,直接用!Hidden或Hidden更简洁。

内容的提问来源于stack exchange,提问作者Kageus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 04:53:10