Исключение нулевого указателя - это индикатор того, что вы используете объект, не инициализируя его.
Например, ниже - класс ученика, который будет использовать его в нашем коде.
public class Student {
private int id;
public int getId() {
return this.id;
}
public setId(int newId) {
this.id = newId;
}
}
Приведенный ниже код дает вам исключение с нулевым указателем.
public class School {
Student obj_Student;
public School() {
try {
obj_Student.getId();
}
catch(Exception e) {
System.out.println("Null Pointer ");
}
}
}
Поскольку вы используете Obj_Student
, но вы забыли инициализировать его, как в правильном коде, показанном ниже:
public class School {
Student obj_Student;
public School() {
try {
obj_Student = new Student();
obj_Student.setId(12);
obj_Student.getId();
}
catch(Exception e) {
System.out.println("Null Pointer ");
}
}
}
Какая версия платформы? С 3,5 Вы могли, по-видимому, использовать:
List<ManagementObject> managementList = managementObjects.Cast<ManagementObject>().ToList();
(отредактированный для удаления более простой версии; я проверил и ManagementObjectCollection
только реализации недженерик IEnumerable
форма)
managementObjects.Cast<ManagementBaseObject>().ToList();
хороший выбор.
Вы могли улучшить производительность путем предварительной инициализации способности списка:
public static class Helpers
{
public static List<T> CollectionToList<T>(this System.Collections.ICollection other)
{
var output = new List<T>(other.Count);
output.AddRange(other.Cast<T>());
return output;
}
}
Вы могли попробовать:
List<ManagementObject> managementList = new List<ManagementObject>(managementObjects.ToArray());
Не уверенный, если.ToArray () доступен для набора. При использовании кода, Вы отправили, удостоверьтесь, что Вы инициализируете Список с количеством существующих элементов:
List<ManagementObject> managementList = new List<ManagementObject>(managementObjects.Count); // or .Length
Пока ManagementObjectCollection реализует IEnumerable< ManagementObject> можно сделать:
List<ManagementObject> managementList = new List<ManagementObjec>(managementObjects);
, Если это не делает, тогда Вы застреваете, делая его способ, которым Вы делаете его.
можно преобразовать как ниже фрагмента кода
Collection<A> obj=new Collection<return ListRetunAPI()>