Хочу переписать оператор деления на свой!!!
(оператор "/" Какой-то идиотизм с ним. Мелкософт почему-то думает, что деля целое на целое должно быть целое... float a=1/10 будет 0...)
У меня будет свой тип данных!!! Хочу так:
Новый тип данных My_data //строка-число
{
длина-32 байта; состоит из базового типа char;
Оператор div :
a1,a2 new My_data;
return Побитовое_деление(Переводим_строку_в_биты(а1),Переводим_строку_в_биты(а1));
}
Функции Побитовое_деление и Переводим_строку_в_биты реализую сам. Интересует синтаксис объявления своего типа данных и ОПЕРАТОРА!!! Чтобы можно было просто:
My_data a1,a2,a3;
a3= a1 div a1;
В документации есть примеры перегрузки операторов и список перегружаемых операторов.
Запрещено:
Перегружать операторы, не входящие в список разрешенных для пергрузки, например, оператор присваивания.
Создание новых пользовательских операторов (я имею ввиду определение дополнительных символов операторов и ключевых слов, которые компилятор сможет опознать как оператор). Это не поддерживается языком ни в каком виде.
Переопределять операторы для типов, которые определены в чужих библиотеках, включая системные.
Пример перегрузки оператора деления (без логики, это уже пишите сами)
class MyData
{
//прочие члены класса
...
//определяем новый оператор
public static MyData operator /(MyData a, MyData b)
{
MyData result;
result = //логика вычисления результата
return result;
}
...
//прочие члены класса
}
Как использовать:
MyData a, b;
MyData res = a / b;
Технически, вам ни кто не запрещает творить всякую дичь, вроде такого:
//определяем новый оператор
public static double operator /(MyData a, string b)
{
return //что-то возвращаем
}
Но тут важно помнить, что один из параметров оператора обязан иметь тип класса, в котором он определен. Ну и надо не запутаться потом в этих дебрях с "дикими" операторами. Сделать код сложным для понимания вплоть до полного отсутствия понимая самим автором как и зачем оно работает гораздо проще, чем сделать его понятным, так что не увлекайтесь без реальной необходимости.
Любите документацию! Читайте документацию к инструментам, которые используете, и пишите ее к инструментам, которые создаете.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Я решил создать кастомный WindowChrome с использованием соответствующего тега XAML