不同的类型,对性能感到困惑

时间:2013-08-17 19:37:04

标签: c# class types

好的,有很多类型的课程,而且大部分都是我理解的。

公众可以在所有地方使用

私人只能在该课程中使用

受保护的东西就像我认为的私人

所以,事情是内部的。

在我有DLLImports的类文件中。我可以使用,内部或公共。 两者都有效,但我真的不明白它们之间是否存在性能差异?

这是班级。

namespace Capture
{
       internal static class NativeMethods
    {
        //USER32
        [DllImport("user32.dll")]
        [return: MarshalAs(UnmanagedType.Bool)]
        internal static extern bool PrintWindow(IntPtr hWnd, IntPtr hdcBlt, int nFlags);
        //GDI32
        [DllImport("user32.dll")]
        internal static extern IntPtr GetWindowDC(IntPtr hWnd);
        [DllImport("gdi32.dll")]
        internal static extern IntPtr CreateCompatibleBitmap(IntPtr hdc, int nWidth, int nHeight);
        [DllImport("gdi32.dll")]
        internal static extern int BitBlt(
       IntPtr hdcDest, int nXDest, int nYDest, int nWidth, int nHeight, IntPtr hdcSrc, int nXSrc, int nYSrc, System.Int32 dwRop);
        [DllImport("gdi32.dll")]
        internal static extern IntPtr CreateCompatibleDC(IntPtr hdc);
        [DllImport("gdi32.dll")]
        internal static extern IntPtr SelectObject(IntPtr hdc, IntPtr obj);
        [DllImport("gdi32.dll")]
        internal static extern int DeleteObject(IntPtr obj);
    }

}

所以一切都是内部的,我认为这很好,因为它们只能从NativeMethods中发出,所以如果我想使用它们,我必须调用NativeMethods。(我想要的)。

但是,班级本身可以是公共的或内部的,两者都可以相同,因为每个人都可以使用。它对性能有影响吗?

以前曾经问过这个问题,但我对性能差异感兴趣,而不是每个人如何运作,因为我知道他们中的大多数(除了我理解Internel / Public的问题)。

1 个答案:

答案 0 :(得分:2)

没有性能差异。不同之处在于您无法使用其他程序集中的内部类。