Size: a a a

🎄.NET Talks: Evergreen🎄

2020 January 14

s

semptra in 🎄.NET Talks: Evergreen🎄
Т-34 85
А чем отличается?
Вряд ли в плюсах это работает вот так:
class Program
{
       static readonly int x = 0;

       static void Main(string[] args)
       {
           var xField = typeof(Program).GetField("x", BindingFlags.Static | BindingFlags.NonPublic).SetValue(null, 42);
           Console.WriteLine("X = " + x); // 42
       }
}
источник

VS

Viktor Svyatokha in 🎄.NET Talks: Evergreen🎄
semptra
Вряд ли в плюсах это работает вот так:
class Program
{
       static readonly int x = 0;

       static void Main(string[] args)
       {
           var xField = typeof(Program).GetField("x", BindingFlags.Static | BindingFlags.NonPublic).SetValue(null, 42);
           Console.WriteLine("X = " + x); // 42
       }
}
там это еще проще: const_cast
источник

VS

Viktor Svyatokha in 🎄.NET Talks: Evergreen🎄
без вот этих вот биндинг хуиндинг флагз
источник

s

semptra in 🎄.NET Talks: Evergreen🎄
Viktor Svyatokha
там это еще проще: const_cast
То есть в плюсах readonly это тоже чисто контракт?
источник

VS

Viktor Svyatokha in 🎄.NET Talks: Evergreen🎄
semptra
То есть в плюсах readonly это тоже чисто контракт?
там нет ридонли, там есть const
источник

I

Ilya in 🎄.NET Talks: Evergreen🎄
semptra
Вряд ли в плюсах это работает вот так:
class Program
{
       static readonly int x = 0;

       static void Main(string[] args)
       {
           var xField = typeof(Program).GetField("x", BindingFlags.Static | BindingFlags.NonPublic).SetValue(null, 42);
           Console.WriteLine("X = " + x); // 42
       }
}
Хаки не показатель
источник

Dv

Dr. Friedrich von Never in 🎄.NET Talks: Evergreen🎄
Т-34 85
Какой профит? Ну, например, компилятор не даст поменять переменную, если ты обозначишь, что она иммутабельная. А ещё лучше - иммутабельность по умолчанию. @fvnever не даст соврать
Соглашусь с тем, что иммутабельность по умолчанию — хорошая идея.
источник

К

Карен in 🎄.NET Talks: Evergreen🎄
Т-34 85
О, ещё один великий кодер, который никогда-никогда не делает ошибок
источник

К

Карен in 🎄.NET Talks: Evergreen🎄
Dr. Friedrich von Never
Соглашусь с тем, что иммутабельность по умолчанию — хорошая идея.
+
источник

К

Карен in 🎄.NET Talks: Evergreen🎄
val/var как в котлино-скалах
источник

К

Карен in 🎄.NET Talks: Evergreen🎄
и норм будет
источник

Dv

Dr. Friedrich von Never in 🎄.NET Talks: Evergreen🎄
class val : var {}
источник

К

Карен in 🎄.NET Talks: Evergreen🎄
Dr. Friedrich von Never
class val : var {}
источник

Dv

Dr. Friedrich von Never in 🎄.NET Talks: Evergreen🎄
semptra
То есть в плюсах readonly это тоже чисто контракт?
Ну, строго говоря, const — это чисто контракт, да. Чтобы его обойти, есть const_cast или mutable.
источник

VS

Viktor Svyatokha in 🎄.NET Talks: Evergreen🎄
Dr. Friedrich von Never
Ну, строго говоря, const — это чисто контракт, да. Чтобы его обойти, есть const_cast или mutable.
постоянно забываю про mutable :)
источник

Dv

Dr. Friedrich von Never in 🎄.NET Talks: Evergreen🎄
Viktor Svyatokha
постоянно забываю про mutable :)
Честно скажу, ни разу не видал как его юзают в живом коде.
источник

VS

Viktor Svyatokha in 🎄.NET Talks: Evergreen🎄
киворд из категории суперпиздецов
источник

Dv

Dr. Friedrich von Never in 🎄.NET Talks: Evergreen🎄
Но я не то чтобы большой читатель C++.
источник

VS

Viktor Svyatokha in 🎄.NET Talks: Evergreen🎄
Dr. Friedrich von Never
Честно скажу, ни разу не видал как его юзают в живом коде.
а у меня был в проекте один такой)
источник

Dv

Dr. Friedrich von Never in 🎄.NET Talks: Evergreen🎄
Viktor Svyatokha
а у меня был в проекте один такой)
Ого, классно.
источник