Wpis z mikrobloga

#csharp

Mam pytanie. Chce zrobić zmienną boolowską która będzie przechowywała informacje do której miałbyby dostęp wszystkie klasy. Jak to zrobić? Jako że nie ma dziedziczenia wielokrotnego w c# to poczytałem o interfejsach. Ale w nich można robić metody a nie zmienne.
  • 37
@MlodyInformatyk: pomijajac już sam fakt że prawdopodobnie próbujesz zrobić coś szalonego (może opowiedz więcej o Twoim problemie tak btw), to w inrefrejsie możesz miec pole (propercje tak własiciwe) i potem implemenotwać ja wewnątrz każdej klasy która implementuje ten interfejs.

interface X
{
int MyProperty { get; set; }
}
I wtedy musisz to zaimplementować

public class A : X{
public int MyProperty
{
get
{
throw new NotImplementedException();
}
set
{
@MlodyInformatyk: Jeśli potrzebujesz globalnej zmiennej, to prawdopodobnie powinieneś wymyślić inny sposób na to.

Twoim rozwiązaniem jest stworzenie publicznego statycznego obiektu konfiguracyjnego, do którego będziesz się odwoływać w całym projekcie. W środku powinieneś mieć prywatną statyczną zmienną bool i publiczne statyczne property z lockami w gecie i secie.

Ale mógłbyś ten sam obiekt niestatyczny wstrzykiwać przez konstruktor wszędzie tam, gdzie potrzebujesz.
Potrzebuje 2 rodzajów użytkowników - zwykły i admin. Chciałem to załatwić globalnym boolem. Nie mam pomysłu jak inaczej.

@MintajWKwadracie: Bo to jest aplikacja okienkowa i oprócz własnych klas musi do dziedziczyć po Forms.

@edgar_k: To jak to inaczej zaprojektować?

@lukpep: VS 2010

@Maav: Pomysł z konstruktrem fajny ale nie wiem czy da sie to zrobić kiedy użytownik wpisze hasło do usera to jest userem a jak admina to
@MlodyInformatyk: Możesz interfejs. Nie wiem po co, ale możesz. Jak dla mnie to obecna rola powinna być w jednym miejscu w danym wystąpieniu aplikacji. Jak to będzie interfejs, to każda instancja klasy, która go implementuje będzie mieć tę informację (bo nie ma czegoś takiego jak statyczny interfejs) więc ta sama informacja będzie rozsiana w różnych miejscach.
Czy Ty chcesz, żeby każda formatka implementowała ten interfejs? Bo nie wiem czy nadążam..