Проверка формата строки во время компиляции в C#C#

Место общения программистов C#
Ответить
Anonymous
 Проверка формата строки во время компиляции в C#

Сообщение Anonymous »

В моем коде есть несколько строк, которые используются как ключи для доступа к ресурсам. Эти ключи имеют определенный формат, например

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

string key = "ABC123";
В настоящее время все эти ключи хранятся в виде строк, но я хотел бы сделать все более надежным и типобезопасным. В идеале я хотел бы проверить правильность формата строк во время компиляции.

Следующим этапом является создание класса ResourceKey, который инициализируется из строки. Затем я могу проверить формат строки во время выполнения, например

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

ResourceKey key = "ABC123";
где ResourceKey определяется как:

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

using System.Diagnostics;
using System.Text.RegularExpressions;

class ResourceKey
{
public string Key { get; set; }

public static implicit operator ResourceKey (string s)
{
Debug.Assert(Regex.IsMatch(s, @"^[A-Z]{3}[0-9]{3}$"));
return new ResourceKey () { Key = s };
}
}
Что мне действительно хотелось бы сделать, так это иметь своего рода подтверждение во время компиляции, чтобы программа не могла собраться, если кто-то попытается использовать неверный ключ. например

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

ResourceKey k1 = "ABC123"; // compiles
ResourceKey k2 = "DEF456"; // compiles
ResourceKey k3 = "hello world"; // error at compile time
Есть ли какой-нибудь способ добиться этого?

Спасибо

Подробнее здесь: https://stackoverflow.com/questions/506 ... in-c-sharp
Ответить

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

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

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

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

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