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

如何在C#中创建User类并实现新用户注册存储功能

你的代码存在的核心问题

  • 静态方法RegisterUser缺少返回值类型声明,语法不合法
  • 没有定义用于存储所有已注册用户的静态集合,注册的用户实例创建后没有被持久存储
  • 直接调用WriteLine输出User对象时,默认只会打印类名,无法展示用户属性
  • 类注释的<summary>标签没有正确闭合
  • 公开字段不符合C#编码规范,建议改为属性实现封装

修正后的完整实现

namespace UserClass
{
    /// <summary>
    /// 用户类,用于存储用户信息和提供注册功能
    /// </summary>
    public class User
    {
        // 改为自动属性,符合封装规范
        public string UserName { get; set; }
        public string Password { get; set; }
        public string Address { get; set; }
        public int ContactNumber { get; set; }

        // 静态集合,持久存储所有已注册的用户
        private static List<User> _registeredUsers = new List<User>();

        /// <summary>
        /// 注册新用户并存储到列表中
        /// </summary>
        /// <param name="username">用户名</param>
        /// <param name="pass">密码</param>
        /// <param name="add">地址</param>
        /// <param name="contact">联系电话</param>
        /// <returns>注册成功的用户实例</returns>
        public static User RegisterUser(string username, string pass, string add, int contact)
        {
            User newUser = new User()
            {
                UserName = username,
                Password = pass,
                Address = add,
                ContactNumber = contact
            };
            // 将新用户添加到静态存储列表
            _registeredUsers.Add(newUser);
            // 输出用户信息
            Console.WriteLine(newUser.ToString());
            return newUser;
        }

        // 重写ToString方法,自定义用户对象的输出格式
        public override string ToString()
        {
            return $"用户信息:用户名={UserName}, 地址={Address}, 联系电话={ContactNumber}";
        }

        /// <summary>
        /// 获取所有已注册的用户列表
        /// </summary>
        /// <returns>已注册用户集合</returns>
        public static List<User> GetAllRegisteredUsers()
        {
            // 返回副本避免外部修改内部存储的集合
            return new List<User>(_registeredUsers);
        }
    }

    // 调用示例
    class Program
    {
        static void Main(string[] args)
        {
            // 调用静态注册方法
            User.RegisterUser("张三", "123456", "北京市朝阳区", 13800138000);
            User.RegisterUser("李四", "654321", "上海市浦东新区", 13900139000);

            // 获取所有注册用户
            var allUsers = User.GetAllRegisteredUsers();
            Console.WriteLine($"当前注册用户总数:{allUsers.Count}");
        }
    }
}

实现逻辑说明

  • 用静态的List<User>存储所有注册用户,静态成员属于类本身,不会随实例销毁而消失,能持久保存所有注册数据
  • 注册方法完成用户实例创建、赋值、存储、返回的全流程,符合功能需求
  • 重写ToString方法可以自定义用户对象的输出格式,方便调试和展示
  • 提供GetAllRegisteredUsers方法对外暴露已注册用户列表,返回副本避免外部代码随意修改内部存储的集合数据

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 10:45:03