HiveBrain v1.2.0
Get Started
← Back to all entries
patterncsharpMinor

Simple app to take username and password from the user

Submitted by: @import:stackexchange-codereview··
0
Viewed 0 times
simpletheapptakeuserusernamepasswordandfrom

Problem

I'm beginner at programming (I guess it's quite obvious) and this is my small "app" I tried to make, that takes username and password from the user. Could you give me some advice on how can I improve it?

```
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;

namespace Login
{
class Program
{

static void Main(string[] args)
{
Initialization();
}

public static void Initialization()
{
int x = 0;
int choice = 0;

while (x < 2)
{
Console.Clear();

Console.Write("Username: ");
string username = Console.ReadLine();

Console.Write("\nPassword: ");
string password = Console.ReadLine();

Console.WriteLine();

string option1 = "Login";
string option2 = "Exit";

Console.WriteLine(option1 + "\n" + option2);

while (x < 2)
{
ConsoleKeyInfo info = Console.ReadKey();
if (info.Key == ConsoleKey.UpArrow)
{
Console.Clear();
Console.ResetColor();

Console.WriteLine("Username: {0}", username);
Console.WriteLine("\nPassword: {0}\n", password);

Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine(option1);

Console.ResetColor();
Console.WriteLine(option2);

choice = 1;
}
else if (info.Key == ConsoleKey.DownArrow)
{
Console.Clear();
Console.ResetColor();

Console.WriteLine("Username: {0}", username);
Console.WriteLine("\

Solution

Just a few things:

  • Don't use \n as a literal, we use Environment.NewLine instead.



-
Don't use "string concatenation" (string + string), instead use string.Join, string.Format or a StringBuilder. I.e.:

Console.WriteLine(option1 + "\n" + option2);


Should be:

Console.WriteLine("{0}{1}{2}", option1, Environment.NewLine, option2);


Just as well, you should, ideally, switch this to two Console.WriteLine statements:

Console.WriteLine(option1);
Console.WriteLine(option2);


-
A method should have on responsibility (SRP):

public static bool Login(string username, string password)
{
    if(username == "asd" && password == "asd")
    {
        Console.WriteLine("Welcome");
        return true;
    }
    else
    {
        return false;
    }
}


The Console.WriteLine statement does not belong there, Login should simply return true or false in this case.

Code Snippets

Console.WriteLine(option1 + "\n" + option2);
Console.WriteLine("{0}{1}{2}", option1, Environment.NewLine, option2);
Console.WriteLine(option1);
Console.WriteLine(option2);
public static bool Login(string username, string password)
{
    if(username == "asd" && password == "asd")
    {
        Console.WriteLine("Welcome");
        return true;
    }
    else
    {
        return false;
    }
}

Context

StackExchange Code Review Q#150194, answer score: 5

Revisions (0)

No revisions yet.