вам просто нужно добавить свойство css float:right
ко всем вашим кнопкам
удачи!
Вы, конечно, могли бы писать код на C # неизменно, но это не имеет ничего общего со статическими функциями. Неизменяемость - это такие вещи, как наличие структуры или объекта, которые только «изменяют состояние», делая собственную копию и делая копию другой.
Нет, эти два понятия не связаны. Статические методы в C # могут по-прежнему изменять входящие объекты как обычно, а другие переменные, используя ref или out.
Абсолютно нет, неизменность не имеет ничего общего с методами, являющимися статическими или экземплярами. String
, будучи неизменным классом, имеет множество методов экземпляров, которые очень функциональным образом возвращают новый экземпляр класса String
, а не изменяют что-либо.
Вы можно попытаться эмулировать F # с помощью функциональной декомпозиции, но это все равно будет довольно императивный код.
Нет, это не то же самое, что статические методы. У вас нет изменяемого состояния, если вы ничего не назначаете (локальные, аргументы функций, статические поля, поля экземпляров) после его инициализации. Вы можете получить некоторые из преимуществ, разработав свои классы как неизменные.
Apart from static, functional modules versus objects, you can attempt to get some of the benefits of F# by using C# 3 and lambdas, LINQ, etc. However, that doesn't go very far. What I find nice in F# is:
So, you can try to do some of this in C#. Some of it is simply not supported and won't work. The rest gets very ugly, very fast.
So, if you go much off the beaten path of LINQ and the Enumerable extensions, you'll probably end up in a world of pain.
Я позволю себе не согласиться со всеми остальными ответами на сегодняшний день. Неизменяемость и статические методы, возможно, не являются строго технически связанными, но я обнаружил, что использование F # побудило меня делать методы C # статичными всякий раз, когда я могу.
Мышление является аналогом в том смысле, что легче обращаться с неизменным объектом, потому что вам не нужно беспокоиться об изменении его состояния. Точно так же вам не нужно беспокоиться о состоянии при использовании статического метода (если вы не используете глобальный синглтон или что-то в этом роде ...).
ЭТО правда. Вы не получите преимуществ функционального программирования, просто используя больше статических функций в C #. Однако, если бы вы заглянули под капот (например, с помощью Reflector), я понимаю, что простой оператор let является статической функцией. Другими словами,
//F#
let a = 2
похож на функцию в C #
//C#
static int a()
{
return 2;
}
, я могу понять путаницу.
Объяснение из статьи Леона Бамбрика «F # Eye для презентации C # Guy».