Использование нераспределенного локальную переменную ошибки
Я подключаю код для проверки пароля,пароль должен содержать не менее 1 прописной буквы, 1 строчной буквы, 1 цифры и иметь минимальную длину 12 символов, если один или несколько из этих критериев не выполняются, сводка выводится на консоль, позволяя пользователю увидеть, почему пароль не был принят. Код выглядит так, как показано ниже:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApp1 { class Program { static void Main(string[] args) { Console.WriteLine("Please enter a valid password"); Console.WriteLine("Password must be minimum 12 characters long"); Console.WriteLine("Password must contain at least one numerical value"); Console.WriteLine("Password must contain at least one Upper case character"); Console.WriteLine("Password must contain at least one Lower case character"); // Variable declaration bool bolValidLength; bool bolValidUpper; bool bolValidLower; bool bolValidPassword; //Password declaration string Password = Console.ReadLine(); //Loop program if password not acceptable //Checking Password Length int lengthPass(string pass) { int num = 0; foreach (char ch in pass) { if (char.IsDigit(ch)) { num++; bolValidLength = true; } } return num; } //Checking Password for uppercase letters int upperCase(string pass) { int num = 0; foreach (char ch in pass) { if (char.IsUpper(ch)) { num++; bolValidUpper = true; } } return num; } //Checking Password for lowercase letters int lowerCase(string pass) { int num = 0; foreach (char ch in pass) { if (char.IsLower(ch)) { num++; bolValidLower = true; } } return num; } do { //Min pass length declaration const int MIN_Length = 12; if (Password.Length >= MIN_Length && lengthPass(Password) >= 1 && upperCase(Password) >= 1 && lowerCase(Password) >= 1) { Console.WriteLine("The Password is good"); bolValidPassword = true; bolValidLength = true; bolValidLower = true; bolValidUpper = true; } else { Console.WriteLine("The Password is not good"); Console.WriteLine("Please enter a valid password"); Console.WriteLine("Password must be minimum 12 characters long"); Console.WriteLine("Password must contain at least one numerical value"); Console.WriteLine("Password must contain at least one Upper case character"); Console.WriteLine("Password must contain at least one Lower case character"); } if (bolValidLength == false) { Console.WriteLine("The Password length is too short"); } if (bolValidUpper == false) { Console.WriteLine("The Password did not contain an Uppercase letter"); } if (bolValidLower == false) { Console.WriteLine("The Password did not contain a Lowercase letter"); } } while (bolValidPass == false); } } } ************************************************************************************** bolValidLength, bolValidUpper, bolValidLower have 'use of unassigned local variable' error bolValidPass, errors appear as 'does not exist in the current context' and ' is assigned but it's value is never used' What I have tried: Any help is much welcomed as i have been stuck on this for the past week. Thank you
phil.o
То, что вы сделали, так оскорбительно! Пожалуйста, не удаляйте свой вопрос после того, как ответы будут предоставлены. Это делает пост бесполезным и является признаком глубокого неуважения к другим пользователям этого форума.
Richard MacCutchan
Исправлено.
phil.o
Спасибо, Ричард.