Từ 1 tới 7 trên tổng số 7 kết quả

Đề tài: Lấy tên method trong class C# như thế nào?

  1. #1
    Ngày gia nhập
    08 2011
    Nơi ở
    Yên Bái- Hà Nội
    Bài viết
    961

    Mặc định Lấy tên method trong class C# như thế nào?

    hi. Mình có thắc mắc đó là:
    Giả sử mình có 1 class thế này:
    public class Test
    {
    public void A()
    {
    }
    public void B()
    {
    }
    ...
    public void M()
    {

    }
    }
    .....
    vậy làm cách nào đê lấy được tên các method: A,B,...M trong class Test kia? ai biết chỉ hộ với. Thanks
    Skype: mrfour.it - Yahoo:mrfour_it
    Gmail: mrfour.it@gmail.com
    Bạn muốn học lập trình? Bạn chưa có kiến thức cơ bản? Bạn muốn học từ cơ bản tới nâng cao?... Bạn muốn có source code để tham khảo? Muốn có người hỗ trợ khi học?....http://www.laptrinh123.com sẽ giúp bạn những điều đó!

  2. #2
    Ngày gia nhập
    08 2010
    Bài viết
    41

    New 1 đội tượng lớp Test.
    Visual C# Code:
    1.  Test t= new Test();
    2. t.a();
    Phạm Minh Quang!

  3. #3
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Visual C# Code:
    1. using System;
    2. using System.Reflection;
    3.  
    4. namespace ConsoleApplication1
    5. {
    6.     class Program
    7.     {
    8.         class Test
    9.         {
    10.             public int A()
    11.             {
    12.                 return 0;
    13.             }
    14.  
    15.             public int B()
    16.             {
    17.                 return 0;
    18.             }
    19.         }
    20.        
    21.         static void Main(string[] args)
    22.         {
    23.             Console.Title = "Enum method";
    24.            
    25.             Type t = (new Test()).GetType();
    26.             MethodInfo []mi = t.GetMethods(BindingFlags.Instance | BindingFlags.Public | BindingFlags.DeclaredOnly);
    27.             for (int i = 0; i < mi.Length; i++)
    28.             {
    29.                 Console.WriteLine(mi[i].Name);
    30.             }
    31.  
    32.             Console.ReadKey();
    33.         }
    34.     }
    35. }
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

  4. #4
    Ngày gia nhập
    11 2008
    Nơi ở
    An Giang
    Bài viết
    502

    Khai báo 1 đối tượng kiểu Type = với Class mà anh muốn lấy các Method
    Visual C# Code:
    1. Type type = Test.GetType();
    2. //Cho 1 vòng lặp chạy để lấy các Method
    3. foreach(MethodInfo method int type.GetMethods()
    4. {
    5. //Lọc các Method có kiểu trả về cần muốn lấy
    6. if(method.ReturnType == typeof(void))//nếu Method có kiểu trả về là void thì chấp nhận
    7. //Lấy tên Method bằng cách method.Name
    8. }
    Hi vọng giúp đc anh

  5. #5
    Ngày gia nhập
    08 2011
    Nơi ở
    Yên Bái- Hà Nội
    Bài viết
    961

    Thank a MeolongVang va' HuuHung. Trong code a meolongvang dùng:
    t.GetMethods(BindingFlags.Instance | BindingFlags.Public | BindingFlags.DeclaredOnly);
    a có thể nói đôi chút về cách viết method và dùng method với tham số ở dạng "|" được không ạ? em chưa dùng kiểu đó bjo.
    Đã được chỉnh sửa lần cuối bởi mrfour.it : 01-12-2011 lúc 11:23 PM.
    Skype: mrfour.it - Yahoo:mrfour_it
    Gmail: mrfour.it@gmail.com
    Bạn muốn học lập trình? Bạn chưa có kiến thức cơ bản? Bạn muốn học từ cơ bản tới nâng cao?... Bạn muốn có source code để tham khảo? Muốn có người hỗ trợ khi học?....http://www.laptrinh123.com sẽ giúp bạn những điều đó!

  6. #6
    Ngày gia nhập
    04 2010
    Bài viết
    1,534

    Mặc định Lấy tên method trong class C# như thế nào?

    Trời đất, bạn đến trình độ này mà chưa thấy qua kỹ thuật dùng BIT OR để nạp tham số ở dạng BIT SET hay sao?

    Mỗi cái thuộc tính đi theo BindingFlags tượng trưng cho một bit được set. Ta tổng chúng lại thành tham số.
    Hàm nhận tham số ở dạng int, duyệt các bit này và biết được điều kiện nào cần true và điều kiện nào là false

  7. #7
    Ngày gia nhập
    08 2011
    Nơi ở
    Yên Bái- Hà Nội
    Bài viết
    961

    Trích dẫn Nguyên bản được gửi bởi VoTichSu Xem bài viết
    Trời đất, bạn đến trình độ này mà chưa thấy qua kỹ thuật dùng BIT OR để nạp tham số ở dạng BIT SET hay sao?

    Mỗi cái thuộc tính đi theo BindingFlags tượng trưng cho một bit được set. Ta tổng chúng lại thành tham số.
    Hàm nhận tham số ở dạng int, duyệt các bit này và biết được điều kiện nào cần true và điều kiện nào là false
    hix. Nóng tính thế? Các phép toán về bít thì thấy rồi. Nhưng cái kỹ thuật này chưa thấy( hình như thấy rồi nhưng ko để ý) nên mới chưa rõ=> mới hỏi. Thực ra mình tưởng nó gần giống kiểu dùng params[] nên hỏi xem thế nào.haiz. Gà quá cũng khổ. Xem trong cái BindingFlags thì toàn giá trị là 2^n thật.

    Visual C# Code:
    1.     public enum BindingFlags
    2.     {
    3.         // Summary:
    4.         //     Specifies no binding flag.
    5.         Default = 0,
    6.         //
    7.         // Summary:
    8.         //     Specifies that the case of the member name should not be considered when
    9.         //     binding.
    10.         IgnoreCase = 1,
    11.         //
    12.         // Summary:
    13.         //     Specifies that only members declared at the level of the supplied type's
    14.         //     hierarchy should be considered. Inherited members are not considered.
    15.         DeclaredOnly = 2,
    16.         //
    17.         // Summary:
    18.         //     Specifies that instance members are to be included in the search.
    19.         Instance = 4,
    20.         //
    21.         // Summary:
    22.         //     Specifies that static members are to be included in the search.
    23.         Static = 8,
    24.         //
    25.         // Summary:
    26.         //     Specifies that public members are to be included in the search.
    27.         Public = 16,
    28.         //
    29.         // Summary:
    30.         //     Specifies that non-public members are to be included in the search.
    31.         NonPublic = 32,
    32.         //
    33.         // Summary:
    34.         //     Specifies that public and protected static members up the hierarchy should
    35.         //     be returned. Private static members in inherited classes are not returned.
    36.         //     Static members include fields, methods, events, and properties. Nested types
    37.         //     are not returned.
    38.         FlattenHierarchy = 64,
    39.         //
    40.         // Summary:
    41.         //     Specifies that a method is to be invoked. This must not be a constructor
    42.         //     or a type initializer.
    43.         InvokeMethod = 256,
    44.         //
    45.         // Summary:
    46.         //     Specifies that Reflection should create an instance of the specified type.
    47.         //     Calls the constructor that matches the given arguments. The supplied member
    48.         //     name is ignored. If the type of lookup is not specified, (Instance | Public)
    49.         //     will apply. It is not possible to call a type initializer.
    50.         CreateInstance = 512,
    51.         //
    52.         // Summary:
    53.         //     Specifies that the value of the specified field should be returned.
    54.         GetField = 1024,
    55.         //
    56.         // Summary:
    57.         //     Specifies that the value of the specified field should be set.
    58.         SetField = 2048,
    59.         //
    60.         // Summary:
    61.         //     Specifies that the value of the specified property should be returned.
    62.         GetProperty = 4096,
    63.         //
    64.         // Summary:
    65.         //     Specifies that the value of the specified property should be set. For COM
    66.         //     properties, specifying this binding flag is equivalent to specifying PutDispProperty
    67.         //     and PutRefDispProperty.
    68.         SetProperty = 8192,
    69.         //
    70.         // Summary:
    71.         //     Specifies that the PROPPUT member on a COM object should be invoked. PROPPUT
    72.         //     specifies a property-setting function that uses a value. Use PutDispProperty
    73.         //     if a property has both PROPPUT and PROPPUTREF and you need to distinguish
    74.         //     which one is called.
    75.         PutDispProperty = 16384,
    76.         //
    77.         // Summary:
    78.         //     Specifies that the PROPPUTREF member on a COM object should be invoked. PROPPUTREF
    79.         //     specifies a property-setting function that uses a reference instead of a
    80.         //     value. Use PutRefDispProperty if a property has both PROPPUT and PROPPUTREF
    81.         //     and you need to distinguish which one is called.
    82.         PutRefDispProperty = 32768,
    83.         //
    84.         // Summary:
    85.         //     Specifies that types of the supplied arguments must exactly match the types
    86.         //     of the corresponding formal parameters. Reflection throws an exception if
    87.         //     the caller supplies a non-null Binder object, since that implies that the
    88.         //     caller is supplying BindToXXX implementations that will pick the appropriate
    89.         //     method.
    90.         ExactBinding = 65536,
    91.         //
    92.         // Summary:
    93.         //     Not implemented.
    94.         SuppressChangeType = 131072,
    95.         //
    96.         // Summary:
    97.         //     Returns the set of members whose parameter count matches the number of supplied
    98.         //     arguments. This binding flag is used for methods with parameters that have
    99.         //     default values and methods with variable arguments (varargs). This flag should
    100.         //     only be used with System.Type.InvokeMember(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object,System.Object[],System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[]).
    101.         OptionalParamBinding = 262144,
    102.         //
    103.         // Summary:
    104.         //     Used in COM interop to specify that the return value of the member can be
    105.         //     ignored.
    106.         IgnoreReturn = 16777216,
    107.     }
    Skype: mrfour.it - Yahoo:mrfour_it
    Gmail: mrfour.it@gmail.com
    Bạn muốn học lập trình? Bạn chưa có kiến thức cơ bản? Bạn muốn học từ cơ bản tới nâng cao?... Bạn muốn có source code để tham khảo? Muốn có người hỗ trợ khi học?....http://www.laptrinh123.com sẽ giúp bạn những điều đó!

Các đề tài tương tự

  1. Gọi đến 1 method trong class nhưng lỗi "Object reference not set to an instance of an object."
    Gửi bởi phudq90 trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 15
    Bài viết cuối: 05-03-2012, 11:04 PM
  2. Instance method và class method khác nhau như thế nào?
    Gửi bởi zenstorm trong diễn đàn Thắc mắc lập trình Objective-C
    Trả lời: 4
    Bài viết cuối: 24-02-2012, 09:36 AM
  3. Cách thêm Method, Property vào 1 class khác?
    Gửi bởi anglelover trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 5
    Bài viết cuối: 24-11-2011, 12:59 PM
  4. Lập trình C++ Nên định nghĩa các method trong thân class hay định bên ngoài (dùng ::)
    Gửi bởi longtth trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 5
    Bài viết cuối: 12-07-2011, 06:43 PM
  5. Cách gọi một private method của một class trong C++ ??
    Gửi bởi tandaica0612 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 32
    Bài viết cuối: 11-01-2009, 06:13 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn