当前位置:编程学习 > C#/ASP.NET >>

高手来。小问题。。来着有分。欢迎来解答。


 public class A
    {
        public string a;
    }

    public class B
    {
        A A1 = new A();


    }


请教下 怎么根据对象A1获得 类B的名字。。。。 --------------------编程问答-------------------- 虽然不会  但表示关注  顶你。希望你早日得到答案。 顺便给点分把 --------------------编程问答-------------------- new StackFrame(1)).GetMethod().Name调用自己的那个函数的名称

StackFrame
StackTrace
--------------------编程问答-------------------- 怎么获得A1? --------------------编程问答-------------------- A在哪个类中实例化过? --------------------编程问答-------------------- 没意思!!!!!!! --------------------编程问答--------------------

System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name; 

 

--------------------编程问答-------------------- A在哪个类 实例化。我就想获得那个实例化类的名字。。。。  --------------------编程问答--------------------

 public class A
    {
        public string a;

pulic  GetClassName()
{
   ......
}
    }

    public class B
    {
        A A1 = new A();

        A1.GetClassName(); 通过这个方法怎么获得B
    }



 A1.GetClassName(); 通过这个方法怎么获得B
--------------------编程问答-------------------- 有人来啊吗。。。。。。。。 我刚开始表达的可能不清楚。下面又描述了下。求高手指点。 --------------------编程问答--------------------

        class A
        {
            public string GetClassName()
            {
                return System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.FullName;
            }
        }

        public class B
        {
                A A1 = new A();

                A1.GetClassName(); 通过这个方法怎么获得B
        }


楼上几位朋友都是正确的。 --------------------编程问答--------------------
引用 10 楼  的回复:
C# code

        class A
        {
            public string GetClassName()
            {
                return System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.FullName;
            }……

这样写也不对,获取的是调用方法的类。
没有想到怎么去做,你说说你为什么要这么做吧,这种需求很奇怪, --------------------编程问答-------------------- 需求是我封装了一个Gridview控件。。里面有一个保存布局的功能。 我希望调用的时候默认按照Gridview的所在类的类名来作为文件名来保存,这样能比较好的保证文件名不重复。。。。

难不成我每用一个Gridview都要定义默认文件名?这样不是有点麻烦么。。。


类似的功能不知道各位如何处置。。。请教高人 。。。 --------------------编程问答-------------------- 有这么调的?

封装,继承,多态》。。。。。 --------------------编程问答-------------------- 详细说说您的思路呗。13楼。我虚心请教。。。 --------------------编程问答-------------------- 帮忙顶顶  不会 咱也不能打酱油 --------------------编程问答--------------------
引用 11 楼  的回复:
引用 10 楼  的回复:

C# code

class A
{
public string GetClassName()
{
return System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.FullName;
}……

这样写也不对,获取的是调用方法的类。
没有想到怎么去做,你说说你为什么要这么……



        class A
        {
        public string GetClassName()
        {
            StackTrace ss = new StackTrace(true);

            //return ss.GetFrame(1).GetMethod().DeclaringType.FullName;//返回:B
            return System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.FullName;//返回:A
        }
        }

        public class B
        {
                A A1 = new A();

                A1.GetClassName(); 通过这个方法怎么获得B
        }


这个方式明显是正确的,一试便知。 --------------------编程问答-------------------- 如果只是为了不重名用当前时间做默认名称不就可以了…… --------------------编程问答-------------------- 面向对象的三大特点....
引用 14 楼  的回复:
详细说说您的思路呗。13楼。我虚心请教。。。
--------------------编程问答--------------------
引用 8 楼  的回复:
C# code

 public class A
    {
        public string a;

pulic  GetClassName()
{
   ......
}
    }

    public class B
    {
        A A1 = new A();

        A1.GetClassName(); 通过这个方法怎么获得B
    }



……


直接利用反射就可以获得类名了,你在使用反射前考虑下:我是否真的有必要反射。
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,