50789


タイトル通りなのですがクラスのコンストラクタでラムダ式と普通のコンストラクタとの処理の違いが知りたいです。  
１、`public string name => "nothing";`はgetアクセ同じですが内部処理などはどう違うのでしょうか？

[code]

    public class SampleLambda
    {
    
        private int num;
        private string[] str_nums = new string[5];
        public string name => "nothing";
    
        public string this[int key]
        {
            get => str_nums[key];
    
            set => str_nums[key] = value;
        }
    
    
        //public SampleLambda()  => num = 3;
    
        public SampleLambda()
        {
            num = 3;
        }
    
    
        public int Multi(int a) => a * num;
    
        /*
         * public int Multi(int a)
         * {
         *      return a * num;
         * }      
         */
    }
    
    class Program
    {
    
        static void Main()
        {
            var c = new SampleLambda();
            Console.WriteLine(c.name);
            Console.WriteLine(c.Multi(5));
    
            c[1] = "test";
            Console.WriteLine(c[1]);
    
    
    
    
    
    
    
            Console.ReadKey();
        }
    }
    
[/code]


CC BY-SA 4.0
2018-11-30T11:06:08.103
50786
2018-12-07T16:15:29.637
2018-12-07T16:15:29.637
76
question
c#
ラムダ式コンストラクタと普通のコンストラクタの違いが知りたいです。


`public string name => "nothing";`はそもそもプロパティであり、コンストラクターではありません。  
[プロパティはC# 6](https://docs.microsoft.com/ja-jp/dotnet/csharp/whats-
new/csharp-6#expression-bodied-function-members)で、[コンストラクターはC#
7.0](https://docs.microsoft.com/ja-jp/dotnet/csharp/whats-new/csharp-7#more-
expression-bodied-
members)で拡張された新しい構文です。[糖衣構文](https://ja.wikipedia.org/wiki/%E7%B3%96%E8%A1%A3%E6%A7%8B%E6%96%87)であり、機能に違いはありません。


CC BY-SA 4.0
2018-11-30T12:51:03.803
50789
2018-11-30T12:51:03.803
4236
50786
answer