c#问题 !!!!!!

求代码... 求代码 展开
 我来答
Tech_Monkeye5
2018-06-05 · TA获得超过984个赞
知道小有建树答主
回答量:330
采纳率:92%
帮助的人:80.3万
展开全部
/// <summary>
/// 登陆帮助类
/// </summary>
/// <remark>
/// 类功能说明
/// 1.内置默认的用户
/// 2.验证用户名及密码输入
/// 3.验证用户有效性
/// </remark>
public class LoginHelper{
    /// 内置的用户类
    private static UserInfo _User;
    
    /// 构造函数
    static LoginHelper()
    {
        _User = new UserInfo{UserName = "user01",UserPwd="USER01@user01"};
    }
    
    /// 验证输入
    /// 其实这里存在一个描述性的错误
    /// IsEmpty是否为空,一般为空时应该为true,而非空是false
    /// 如果想为空是返回false,非空时返回true,此处命名应该命名为IsNotEmpty
    /// 命令一般要符合这样的规律,虽然不是必须的,但在使用上会干扰
    /// 在.net中也存在相应的设计有很多
    /// IsEmpty返回true时表示为空
    /// IsNotEmpty返回true时表示非空
    /// 大部分类中只存在两者中的一个,但也有很多例外
    /// 如Assert类中同时存在IsNull/IsNotNull,AreSame/AreNotSame之类的同时出现
    public static bool IsEmpty(string pName, string pPwd)
    {
        return string.IsNullOrEmpty(pName) ||
            string.IsNullOrEmapty(pPwd);
        // 注意此处使用了常规的处理方式
        // 此处返回值与你描述中是相反的,因为你描述中存在一定的问题
        // 如果你铁定要使用描述中的,那么语句可以使用
        // return !string.IsNullOrEmpty(pName) && !string.IsNullOrEmpty(pPwd);
    }
    
    /// 验证有效性
    public static bool IsValid(string pName, string pPwd)
    {
        return _User.UserName.ToLower() == pName?.ToLower() &&
            _User.UserPwd == pPwd;
        // 这里直接进行验证是否相等即可,
        // 要注意的是我这里使用了一个.net 4.6的语法糖
        // vs2015及其以上版本才可以编译通过的
        // 就是?.这个玩意别把问号给省略了。
        // pName?.ToLower()的结果就是pName为空时(null)返回null,
        // 如果不为空时则返回其小写形式。
        // 如果写作pName.ToLower()时,一旦pName为null则会抛出无引用的例外。
        // 因为经常涉及到这样类似的判断写法,所以在.net 4.6中引入的新的语法糖
    }
}

/// <summary>
/// 用户信息类
/// </summary>
public class UserInfo
{
    /// 用户名
    public string UserName{get;set;}
    /// 密码
    public string UserPwd{get;set;}
}
/// 场景代码
/// 也就是client代码
/// 你的控制台程序
/// 其它地方使用命名,我只写Entry
static void Main(string[] args)
{
    // 控制输入
    string pName = Console.ReadLine();
    string pPwd = Console.ReadLiner();
    // 验证输入
    // 注意如果你按描述中说法,此处应该取反
    // 注意,因为设计中LoginHelper中只判断了用户名与密码是否为空的情况
    // 并没特别指名哪个为空,而提示信息中却输入了用户名或密码为空的情况
    // 那就意味着这里需要重复的判断!
    // 否则我们可以设计为返回-1(用户名为空)-2(密码为空)0(正常情况)
    // 或者我们只需要提示用户名或用户密码不能空做为整体提示
    if(LoginHelper.IsEmpty(pName, pPwd))
    {
        if(string.IsNullOrEmapty(pName))
            Console.Write("用户名不能为空!");
        if(string.IsNullOrEmpty(pPwd))
            Console.Write("用户密码不能为空!");
        Console.WriteLine();
        return;
    }
    
    // 上文判断为空时因存在return所以只有不为空时才会进入到此处
    if(LoginHelper.IsValid(pName, pPwd)
        Console.WriteLine($"{pName}你好!欢迎使用本系统!");
    else
        Console.WriteLine("用户名不正确,用户密码不正确!");
   
   // 注意这我里使用了一个.net 4.6中的一个特性,叫格式化文本。在VS2015
   // 以前版本中无法编译通过,就是$起始的字符串中直接使用了{}引用变量名
   // 如果你使用了VS2015版本中的4.0及4.5时,请使用原来的文本格式化
   // Console.WriteLine("{0}你好!欢迎使用本系统!",pName);
}

你可能很奇怪为什么在UserInfo或LoginHelper中为什么没有使用Console类直接进行输入输出吧!这个以后你会慢慢知道的!现在你可以了解一下相关的面向对象基本原则。
zxyzcmpy
2018-06-04
知道答主
回答量:61
采纳率:0%
帮助的人:11.1万
展开全部
你疯了,这点问题求代码。。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
du十幺卜入
2018-06-04 · TA获得超过2544个赞
知道大有可为答主
回答量:4957
采纳率:70%
帮助的人:2999万
展开全部
翻翻书就懂了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
鹤禧觉色2J
2018-06-04 · 超过36用户采纳过TA的回答
知道答主
回答量:255
采纳率:32%
帮助的人:32.6万
展开全部
自己写 你这是完全没听课的人
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式