interface を利用したクラスでは基本的に public で定義する必要がある
public class SampleRandom : MonoBehaviour { private void Start() { var t = new Test(); t.Test1(); } private interface ITest1 { void Test1(); } private class Test : ITest1 { public void Test1() { Debug.Log("Test1"); } } }
しかし、interface を利用した場合でのみ機能を提供したい場合に public では困ってしまう
そのために、下記の書き方ができるようになっている
void ITest1.Test1()
こうすることで、interface 経由でのみ呼び出すことが可能になる
public class SampleRandom : MonoBehaviour { private void Start() { var t = new Test(); var i = t as ITest1; i.Test1(); } private interface ITest1 { void Test1(); } private class Test : ITest1, ITest2 { void ITest1.Test1() { Debug.Log("Test1"); } } }