Skip to content

Як перетворити універсальний тип [C#]

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Завантаження...

[ Полезный рекламный блок ]

Попробуйте свои силы в игре, где ваши навыки программирования на C# станут решающим фактором. Переходите по ссылке 🔰.


У C# ви можете використовувати метод TryParse для розбору рядка в параметр загального типу. Однак, оскільки TryParse є статичним методом вбудованих типів, таких як int, double тощо, його не можна використовувати безпосередньо з параметрами загальних типів.

Одне з рішень – використовувати обмеження типу, щоб переконатися, що параметр загального типу T є посилальним типом і реалізує інтерфейс IConvertible.

Інтерфейс IConvertible визначає методи перетворення значення в різні поширені типи, включаючи рядок, і назад. Потім ви можете використовувати метод Convert.ChangeType() для перетворення розібраного значення до типу T.

Ось приклад реалізації загального методу TryParse, що використовує ці прийоми:

У цьому прикладі метод TryParse приймає рядок s і вихідний параметр result типу T. Обмеження where T : class, IConvertible гарантує, що T є посилальним типом і реалізує інтерфейс IConvertible.

Усередині методу використовується метод Convert.ChangeType для перетворення розібраного значення до типу T. Якщо перетворення пройшло успішно, розібране значення присвоюється параметру result, і метод повертає true. В іншому випадку метод повертає false.

Ось приклад використання методу GenericParser.TryParse для розбору рядка в параметр універсального типу:

 

Published inВідповіді на запитання C#
Subscribe
Notify of
guest
0 комментариев
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x