Wpis z mikrobloga

#programowanie #siszarp
Mireczki piszę sobie prosty program w C# i mam mały problem ze zrozumieniem pewnej rzeczy mam strukturę przechowującą login hasło imie nazwisko i jakiś kod kiedy piszę metody zwracające daną wartość usera(imie nazwisko itd.) piszę metody statyczne, które pobierają danego usera, kiedy chciałem napisać metodę która weryfikuje login i hasło typu bool która pobiera login i hasło w ten sposób jaki chcę to zrobić nie mogę napisać tej metody statycznie, dlaczego? Trochę chaotycznie to napisałem więc wklejam kod, mam nadzieję że to trochę rozjaśni mój problem (przedostatnia metoda)
http://pastebin.com/PH1nCicP
  • 6
@banneh: Trochę z dupy strony podszedłeś do tematu.
Ale jeżeli chcesz zostać przy takim kodzie to autoryzację musisz zrobić na instancji w której przechowujesz użytkowników. Przykładowo:

List uzytkownicy;
A klasę statyczną stworzyć mniej więcej tak:

static bool Auth(uzytkownicy, login, pass)
W środku możesz zrobić przez LINQ wyszukiwanie użytkownika przez login i porównanie hasła.

Ale moim skromnym zdaniem powinieneś mały refaktor zrobić i cisnąć to w osobną klasę użytkowników (nie pisać metod
AnonimowyAnon - @banneh: Trochę z dupy strony podszedłeś do tematu.
Ale jeżeli chces...

źródło: comment_EQksJEvTO2GEXzOWRpsXrCsx1rUGXtE4.jpg

Pobierz
@AnonimowyAnon: póki co robię na podstawie tego czego się dowiedziałem na uczelni i doczytuję sam na 4programmers i innych źródłach. Druga sprawa też jest taka że mamy w pewien sposób narzucony sposób rozwiązania tych zadań niestety
@banneh: W takim wypadku, jeżeli musisz akurat zrobić to w taki sposób to:

public static bool Auth(UserList/Vector/Tab users, string login, string pass) {
Tutaj szukasz użytkownika w taki sposób (mniej elegancki):

foreach(User usr in users)
if(loginReturn(usr) == login); itd..
Lub (jeżeli możesz to korzystaj z LINQ)

var usr = users.Single(s => s.Login == login);
Trochę smuteczek, jeżeli wam narzucają sposób rozwiązania ( ͡° ʖ̯ ͡°)