#define /wartość

0

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 !

0

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

0

W C# nie da sie użyć wartości dla define..

0

no wiem że sie nie da uzyć ale przecie musi być jakaś metoda na ominięcie tego bo inaczej wielu rzeczy nieda sie zrobić :|

0
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.

0

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.

0
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.

1 użytkowników online, w tym zalogowanych: 0, gości: 1