witam
z tego co sie zorientowalem w C# nie można uzywać wartości dla #define :-/
w takim razie jak to
#define ID_USER 0x0006
przelożyć na C# ?
[???]
POZDRO !
witam
z tego co sie zorientowalem w C# nie można uzywać wartości dla #define :-/
w takim razie jak to
#define ID_USER 0x0006
przelożyć na C# ?
[???]
POZDRO !
nie wiem jak dokladnie jest w C# ale juz w c++ zamiast define zaleca sie stosowanie operatora const :) dzieki temu do zadeklarowanej stalej odwolywac sie z pomoca wskaznika. Zobacz czy przypadkiem chlopaki z micro.... juz tego nie wprowadzili jako wymóg. pozdro
W C# nie da sie użyć wartości dla define..
no wiem że sie nie da uzyć ale przecie musi być jakaś metoda na ominięcie tego bo inaczej wielu rzeczy nieda sie zrobić :|
zdesperowany napisał(a)
no wiem że sie nie da uzyć ale przecie musi być jakaś metoda na ominięcie tego bo inaczej wielu rzeczy nieda sie zrobić :|
Chodzi Ci zapewne o to, że nie można definiować stałych globalnych. Otóż ;-) C# jest językiem ściśle obiektowym, dlatego wszystkie zmienne i funkcje mogą być definiowane tylko w obrębie klasy (gdzie będą jej polami i metodami). Ze stałymi jest dokładnie tak samo. Nie ogranicza to jednak w żaden sposób możliwości. Taki sam efekt, jak zastosowanie #define, da Ci umieszczenie stałej w którejś z klas. Najlepiej, jakby była to klasa w jakiś sposób logicznie powązana ze stałą, od biedy jednak możesz wprowadzić np. klasę Constants.
Na przykład:
public class Constants
{
public const int ID_USER = 0x0006;
}
a korzystasz z niej nasepująco:
int id = Constants.ID_USER;
Innym sposobem, chyba nawet lepszym w tym wypadku, może być wykorzystanie typu wyliczeniowego.
Można używać #define, ale tylko na początku pliku z kodem źródłowy. Przynajmniej tak jest w Visual C# 2005 Express Edition Beta 2.
skrzypol napisał(a)
Można używać #define, ale tylko na początku pliku z kodem źródłowy. Przynajmniej tak jest w Visual C# 2005 Express Edition Beta 2.
czytaj poprzednie posty, mozna uzywac define ale bez wartości dla stałej, czyli mozna
#define X
ale
#define X 32
Juz nie da rady.