Каковы все использования в C#?

Может кто-нибудь объяснить мне, что я делаю неправильно?

blockquote>
panel.setLayout(null);

Не использовать нулевую разметку.

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

Задачей менеджера по расположению является определение предпочтительного размера панели. Поскольку вы не используете менеджер макетов, предпочтительный размер не рассчитывается.

Таким образом, решение заключается в использовании Layout Manager . Возможно вертикальный BoxLayout.

5
задан GEOCHET 14 April 2009 в 18:21
поделиться

7 ответов

Строковые литералы

C # поддерживает две формы строковых литералов: обычные строковые литералы и дословные строковые литералы .

Обычный строковый литерал состоит из нуля или более символов, заключенных в двойные кавычки, как в «hello», и может включать обе простые escape-последовательности (такие как \ t для символа табуляции), а также шестнадцатеричные и escape-последовательности Unicode.

Строковый литерал состоит из символа @, за которым следует символ двойной кавычки, ноль или более символов и закрывающая двойная кавычка персонаж. Простой пример - @ "привет". В дословном строковом литерале символы между разделителями интерпретируются дословно, единственное исключение составляет кавычка-escape-последовательность. В частности, простые escape-последовательности и шестнадцатеричные и Unicode escape-последовательности не обрабатываются в дословных строковых литералах. Строковый литерал может содержать несколько строк.

Пример 1:

@"C:\Path\File.zip" == "C:\\Path\\File.zip"

// where

"C:\\Path\\File.zip" // regular string literal
@"C:\Path\File.zip"  // verbatim string literal

Примечание : в строковых литералах дословно следует избегать двойных кавычек.

Пример 2:

@"He said: ""Hello""" == "He said: \"Hello\""

Подробнее здесь :

Префикс «@» позволяет использовать ключевые слова в качестве идентификаторов, что полезно при взаимодействии с другими языками программирования. Символ @ на самом деле не является частью идентификатора, поэтому идентификатор может рассматриваться на других языках как обычный идентификатор без префикса. Идентификатор с префиксом @ называется дословным идентификатором. Использование префикса @ для идентификаторов, которые не являются ключевыми словами, разрешено, но настоятельно не рекомендуется из-за стиля.

Пример:

class @class
{
   public static void @static(bool @bool) {
      if (@bool)
         System.Console.WriteLine("true");
      else
         System.Console.WriteLine("false");
   }
}
class Class1
{
    static void M() {
        cl\u0061ss.st\u0061tic(true);
    }
}
21
ответ дан 18 December 2019 в 05:29
поделиться

Символ @ имеет несколько значений в C #:

  • Когда используется в начале строки, это означает «воспринимать эту строку буквально; не интерпретировать символы, которые в противном случае использовались бы как escape-символы». Это называется дословным строковым литералом . Например, @ "\ n \ t" равно "\\ n \\ t" .

  • При использовании в начале идентификатора, it означает «интерпретировать это как идентификатор, а не как ключевое слово». Например, int @this позволит вам назвать целочисленную переменную «this», которая обычно будет недопустимой, поскольку this является ключевым словом.

7
ответ дан 18 December 2019 в 05:29
поделиться

Символ @ в основном говорит: «Возьми эту строку в точности так, как она есть». Это позволяет разработчику избежать побега.

Итак, @ "C: \" == "C: \\" (с \ escaped).

Я считаю это наиболее полезным в RegEx ... RegEx может стать очень неприятным и запутанным быстро, когда вы начинаете избегая разных вещей и т. д., так что просто использовать буквальное значение.

2
ответ дан 18 December 2019 в 05:29
поделиться

знак @ перед строкой позволяет буквально интерпретировать строку, в противном случае вам придется экранировать обратную косую черту с помощью другой ("C: \").

1
ответ дан 18 December 2019 в 05:29
поделиться

Это дословный строковый литерал , поэтому вы можете использовать обратную косую черту без интерпретации в качестве escape-символа.

Строковый литерал состоит из символ @ , за которым следует символ двойной кавычки, ноль или более символы и закрывающая двойная кавычка персонаж. Простой пример @ "привет" . В дословной строке буквально, символы между разделители интерпретируются дословно, единственное исключение, являющееся цитата-спусковое последовательность . В частности, простые escape-последовательности и шестнадцатеричный и Unicode escape последовательности не обрабатываются в дословные строковые литералы. Дословно строковый литерал может охватывать несколько lines.

quote-escape-sequence: ""

Таким образом, единственный выход из буквального строкового литерала - это экранирование "" как " в течение двух" с.

2
ответ дан 18 December 2019 в 05:29
поделиться

@ указывает, что строка является литеральной строкой, и поэтому вам не нужно экранировать символы внутри нее. Как сказано в документации для строки :

Преимущество дословных строк заключается в том, что escape-последовательности не обрабатываются, что позволяет легко написать, например, полное имя файла: @ "c: \ Docs \ Source \ a.txt "вместо " c: \\ Docs \\ Source \\ a.txt "

1
ответ дан 18 December 2019 в 05:29
поделиться

Помещение @ перед строкой превращает ее из обычной литеральной строки в дословную буквальную строку, которая не использует прямую косую черту для escape (), но использует две кавычки в строке для экранирования кавычки.

Джон Скит пишет больше о строках в C # /. NET.

1
ответ дан 18 December 2019 в 05:29
поделиться