• 1 Post
  • 48 Comments
Joined 1 year ago
cake
Cake day: June 12th, 2023

help-circle





  • Well, jokes aside, people who install Arch usually want maximum flexibility out of their system (I have no idea why you would torture yourself like that otherwise). And after some time spent with Manjaro, I can confidently say that it greatly sacrifices your ability to tinker with the system in the name of user friendliness. A great distro to start with, but if you still like it after a couple of months, you probably didn’t need Arch in the first place.







  • I don’t believe the first code sample is a valid C# code. Switch-case statements expect constants for case conditions and runtime types are not constants, obviously. What you can do is something like this:

    void MyMethod(object arg)
    {
        if (arg.GetType() == typeof(int))
            MyTypedMethod((int)arg);
        else if (arg.GetType() == typeof(int?))
            MyTypedMethod((int?)arg);
        else if (arg.GetType() == typeof(long))
            MyTypedMethod((long)arg);
    }
    

    This will work, but the problem here is that inheritance will fuck you up. All the types we check in this example are sealed and we don’t really have to worry about it in this case, but generally this code is… just bad.

    And yes, the correct way of implementing something like this is by using generic types. Starting from C# 7.0 we have this cool structure:

    void MyMethod<T>(T arg)
    {
        switch (arg)
        {
            case null:
                // Do something with null
                break;
            case int intArg:
                // Do something with intArg
                break;
            case long longArg:
                // Do something with longArg
                break;
        }
    }
    

    You’ll have to check for null separately, as you can’t use Nullable<> there, but overall, it looks much cleaner and handles inheritance properly for you.

    This is called pattern matching, you can read more about it here: https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/operators/patterns









  • There is no single person responsible for Cyrillic script. It is mostly believed to be created by mixing and changing Greek and Glagolic scripts by the scholars of Preslav Literary School, which was indeed in Bulgaria. After a while, Peter the Great changed it a lot. And then Stalin stomped out almost all the deviations in the usage of the script.

    The last part is mostly why it is considered Russian. A lot of languages suffered because of Moscow just forcing them to use the version of Cyrillic that Russians were using.