C#中實現C++中的友元類


最近做一個小程序,一個類A(負責顯示處理)需要大量調用類B(負責數據處理)的函數,我最先想到的C++中的友元概念,因為類B中的這些函數並不希望public,它只是允許類A調用監測.

網上搜索了一下,沒有好的簡單實現,但是我想到了自己以前經常寫的一種方式,那不就是最簡單的實現嗎?

    public class B
    {
        int ma;
        int mb;

        void fa();
        void fb();

        public class A
        {
            B b;
            public A(B bx)
            {
                this.b = bx;
            }
            void ff()
            {
                int ma = b.ma;
                int mb = b.mb;
                b.fa();
                b.fb();
            }
        }
    }

只需要把類A的定義放在類B的實現之中,這個時候類A就可以訪問類B的所有方法和數據量.而且這種方式也容易理解,那就是A要么是B的組成部分之一,A要么是B的寄生部分.只有B存在,A才有存在的意義.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM