Поддерживает ли C# использование статических локальных переменных?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Поддерживает ли C# использование статических локальных переменных?

Сообщение Anonymous »


Связано: Как создать статическую локальную переменную в Java?




Прошу прощения, если это дубликат; Я был почти уверен, что об этом спрашивали раньше, и я поискал, но не нашел обмана.

Можно ли мне создать статическую локальную переменную в C#? Если да, то как?

У меня есть статический частный метод, который используется редко. статический метод использует регулярное выражение, которое я хотел бы инициализировать один раз и только при необходимости.

В C я мог бы сделать это с помощью локальной статической переменной. Могу ли я сделать это на C#?

Когда я пытаюсь скомпилировать этот код:

Код: Выделить всё

    private static string AppendCopyToFileName(string f)
{
static System.Text.RegularExpressions.Regex re =
new System.Text.RegularExpressions.Regex("\\(copy (\\d+)\\)$");
}
...выдает ошибку:


ошибка CS0106: модификатор static недействителен для этого элемента




Если локального статического кода нет переменной, я полагаю, что мог бы приблизиться к тому, что хочу, создав крошечный новый частный статический класс и вставив в класс и метод, и переменную (поле). Вот так:

Код: Выделить всё

public class MyClass
{
...
private static class Helper
{
private static readonly System.Text.RegularExpressions.Regex re =
new System.Text.RegularExpressions.Regex("\\(copy (\\d+)\\)$");

internal static string AppendCopyToFileName(string f)
{
// use re here...
}
}

// example of using the helper
private static void Foo()
{
if (File.Exists(name))
{
// helper gets JIT'd first time through this code
string newName = Helper.AppendCopyToFileName(name);
}
}
...
}
Если подумать об этом подробнее, использование такого вспомогательного класса приведет к большей чистой экономии в эффективности, поскольку класс Helper не будет JIT-компилятором или загрузкой без необходимости. . Верно?

Подробнее здесь: https://stackoverflow.com/questions/239 ... -variables
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Является ли динамическая инициализация не локальных статических/глобальных объектов по своей природе защищена?
    Anonymous » » в форуме C++
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous
  • AS/IntelliJ «Использование не найдено» нигде, даже в локальных переменных
    Anonymous » » в форуме JAVA
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • AS/IntelliJ «Использование не найдено» нигде, даже в локальных переменных
    Anonymous » » в форуме Android
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • AS/IntelliJ «Использование не найдено» нигде, даже в локальных переменных
    Anonymous » » в форуме JAVA
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • AS/IntelliJ «Использование не найдено» нигде, даже в локальных переменных
    Anonymous » » в форуме Android
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»