Я хотел бы создать метод расширения для класса System.Array
, который примет в массиве char[]
или byte[]
и вернет его длину. Мне нужен этот метод для случая, когда массив имеет значение NULL, и я не хочу засорять код целыми связями (arr == null) ? 0 : arr.Length
вызовов.Создать метод расширения Array.ReturnLength()?
Я хочу называть это следующим образом: Array.ReturnLength(arr)
.
Я попытался реализовать его, но я вижу его только тогда, когда я делаю arr.ReturnLength()
, но не как метод массива.
public static int ReturnLength(this Array arr)
{
if (arr == null)
return 0;
return arr.Length;
}
Любые идеи? Благодарю.
То, что вы хотите сделать, это статический метод расширения. C# это не спорт. Статические методы требуют экземпляра. Вместо этого, поскольку нет реальной синтаксической разницы, используйте свой собственный класс и ставьте там статические методы. –
Вот почему люди используют пустые массивы для представления «нет данных», а не нулей ... т. Е. 'Int [] array = new int [0];' а не 'int [] array = null;' –
Вы: _I только см. его, когда я делаю 'arr.ReturnLength()', _ Что еще вы хотите? Тогда он работает как метод расширения. Каково имя статического класса, в который вы ввели свой метод? Ваш метод является членом этого класса. Ваш метод не является членом 'System.Array' (даже если он« расширяет »' System.Array'). –