Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > .NET для новичков > С++ '\0' в C# ?


Автор: sashara 29.12.2008, 10:25
На С++ имеется такая конструкция:

Код

#define INVALID    '\0'


Как она будет выглядеть на С# ?

У меня есть предположение, но я сомневаюсь:

Код

const string INVALID = "\r\n";

Автор: Partizan 29.12.2008, 10:46
sashara, а с какого перепугу '\0' в C# стало '\r\n'???

придётся просто код переписать наверное...в C# строки несколько другие, нежели в С++...

Автор: sashara 29.12.2008, 11:01
Цитата(Partizan @ 29.12.2008,  10:46)
sashara, а с какого перепугу '\0' в C# стало '\r\n'???

Ну так я и спрашиваю, как это перевести. Это же только мое предположение.

помог бы лучше smile 

Автор: Freak_FB 29.12.2008, 11:19
Есть мнение - нужно хотя-бы чуть-чуть знать основы шарпа, чтобы не писать такие вопросы.

sashara, я бы, прежде всего, посмотрел, в каком контексте используется это макроопределение. Скорее всего будет несколько изменена часть программной логики, поскольку, как было сказано, работа со строками в шарпе отличается от этой самой работы в Си.

Может код покажешь?

Автор: sashara 29.12.2008, 11:40
Используется в контексте возвращаемого значения, то есть в случае ошибки С++ функция возвращает '\0'

Автор: Partizan 29.12.2008, 11:47
sashara, ну значит в C# возвращайте string.Empty

Автор: sashara 29.12.2008, 13:26
^^

Это не С# возвращает, а С++ функция smile

Автор: Partizan 29.12.2008, 13:37
sashara,    

ааа...понял

Код

const char INVALID = '\0';


Цитата

 C# defines the following character escape sequences:

    * \' - single quote, needed for character literals
    * \" - double quote, needed for string literals
    * \\ - backslash
    * \0 - Unicode character 0
    * \a - Alert (character 7)
    * \b - Backspace (character 8)
    * \f - Form feed (character 12)
    * \n - New line (character 10)
    * \r - Carriage return (character 13)
    * \t - Horizontal tab (character 9)
    * \v - Vertical quote (character 11)
    * \uxxxx - Unicode escape sequence for character with hex value xxxx
    * \xn[n][n][n] - Unicode escape sequence for character with hex value nnnn (variable length version of \uxxxx)
    * \Uxxxxxxxx - Unicode escape sequence for character with hex value xxxxxxxx (for generating surrogates)


Автор: jonie 31.12.2008, 09:07
Код

byte i = 0;
 будет... 
вопрос в другом, как "другие возраты функции будут представлены в c#"...

если прототип такой:
Код

char somestub();

тогда понятно что byte.

если такой:
Код

TCHAR somerstub();
и скомпилировано в режиме unicode на VC++ (с UCS2 кодировкой короче), тогда там ошибка написана, если только не используют примерно так: TEXT(INVALID). в этом случае ловить в c# надо char...


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)