Znak @ w c#

Witam

Co oznacza znak @ w c# i do czego sluzy?

pozdrawiam

Hmm… szczerze to nie wiem, ale wydaje mi się, że to samo co w PHP, czyli “tłumienia błędów” tzn. nie wyświetlania błędu jeżeli coś pójdzie nie tak w funkcji :wink:

A więc znak @ służy do wprowadzania tzw Verbatim String. Obrazowo jest to string który nie zwraca uwagi na żadne ‘znaki specjalne’ w stylu tabulatory czy przejścia do nowej linii.

Najlepiej zilustrować to na prostym przykładzie. Wywołaj sobie te prosta funkcje:

class Program

    {

        static void Main(string[] args)

        {

            Console.WriteLine("Test \t Test");

            Console.WriteLine(@"Test \t Test");

            Console.ReadKey();

        }

    }

w pierwszej funkcji do WriteLine wysłany zostaje zwykły string, zawierający “\t”, czyli tabulator. w drugiej funkcji jest to taka sama treść, lecz znaczek @ sygnalizuje, iż jest to Verbatim String. Wydruk programu będzie taki:

Test Test

Test \t Test

A więc w drugim przypadku “\t” został potraktowany jako najzwyczajniejszy ciąg znaków a nie jako znak tabulatora.

Bardzo przydaje się to np kiedy chcesz przesłać do jakiejś metody np. lokalizacje pliku, bądź adres internetowy. Dużo tam “” i o pomyłkę nietrudno.

A zwłaszcza do formułowania wyrażeń regularnych, w których backslashy i różnych znaków specjalnych potrafi być naprawdę wiele.

Zgadza się. Podświadomość wypiera mi z pamięci tę katorgę jaką przeżywałem używając wyrażeń regularnych w C++ QT4. ale to było dawno i nieprawda…