mdr141
9/22/2018 - 6:30 AM

Csharpクラス

VisualStuido ConsoleApp

◆アクセス修飾子
・public:すべてのクラスからアクセス可能
・internal:同一アセンブリ※内からのみアクセス可能(アクセス修飾子を省略して宣言した場合はこれ)

※アセンブリ
・ビルドすることによって作られる「実行可能なファイル」のこと。(.exeや.dllファイルのこと)
・VisualStudioでは、基本的に1プロジェクト=1アセンブリ。
 なので、「internal」は「同一プロジェクト内でアクセス可能」ということになる。
using System;

namespace ConsoleTest
{
    class Program
    {
        static void Main(string[] args)
        {
            /*
             * オブジェクト初期化子で簡略にする前のインスタンス生成
             * var p = new Person();
             * p.FirstName = "太郎";
             * p.LastName = "田中";
             *
             */
            // オブジェクト初期化子でインスタンス生成を簡略化
            var p = new Person
            {
                FirstName = "太郎",
                LastName = "田中"
            };
            p.PrintClassName(); // OUTPUT: class Person
            p.PrintName();      // OUTPUT: 太郎 田中 is Person.
        }
    }
}
using System;
namespace ConsoleTest
{
    public class Person
    {
        // 自動プロパティ
        public string FirstName { get; set; }
        public string LastName { get; set; }

        internal void PrintClassName()
        {
            Console.WriteLine("class Person");
        }

        internal void PrintName()
        {
            Console.WriteLine($"{FirstName} {LastName} is Person.");
        }
    }
}