Планировщик , и OpenSched, в том порядке. Существуют некоторые достойные Gantt онлайн (это - корректное написание), инструменты диаграммы онлайн также, обычно интегрируемый в рамках веб-приложения управления проектами или отслеживания ошибок или пакета программного обеспечения.
Ну, один простой способ - просто явно перечислить их в наборе, например
static readonly HashSet<Type> BuiltInTypes = new HashSet<Type>
(typeof(object), typeof(string), typeof(int) ... };
...
if (BuiltInTypes.Contains(typeOfFoo))
{
...
}
Я должен спросить, почему это ' Тем не менее, важно - я могу понять, как это может иметь значение, если это примитивный тип .NET , но не могли бы вы объяснить, почему вы хотите, чтобы ваше приложение вело себя иначе, если оно является одним из тех, которые предназначены для самого C #? Это средство разработки?
В зависимости от ответа на этот вопрос вы можете рассмотреть ситуацию с динамическим
в C # 4 - который не является типом во время выполнения как таковой, но представляет собой System.Object
+ атрибут при применении к параметру метода и т. д.
Не напрямую, но вы можете выполнить следующую упрощенную проверку
public bool IsBulitin(object o) {
var type = o.GetType();
return (type.IsPrimitive && type != typeof(IntPtr) && type != typeof(UIntPtr))
|| type == typeof(string)
|| type == typeof(object)
|| type == typeof(Decimal);
}
Проверка IsPrimitive обнаружит все, кроме строки, объекта и десятичной дроби.
РЕДАКТИРОВАТЬ
Хотя этот метод работает, я бы предпочитаю решение Джона. Причина проста: проверьте количество правок, которые мне пришлось внести в свое решение из-за типов, которые я забыл, были или не были примитивами. Проще просто перечислить их все явно в наборе.