c# 在动态类中调用静态方法
比如定义了一个动态的类,在里面的方法中我想调用其他类一个静态的方法,请问该如何办比如classA{publicstaticinta=0;publicstaticvoids...
比如定义了一个动态的类,在里面的方法中我想调用其他类一个静态的方法,请问该如何办
比如
class A {
public static int a = 0;
public static void sum(int n) { // 定义了一个静态的方法sum.
a = a + n;
}
}
public class Test {
public void test()
{
A.sum(5); //我想这样,但是不行
}
} 展开
比如
class A {
public static int a = 0;
public static void sum(int n) { // 定义了一个静态的方法sum.
a = a + n;
}
}
public class Test {
public void test()
{
A.sum(5); //我想这样,但是不行
}
} 展开
6个回答
展开全部
要调用其它类,有两种情况:
1)如果其它类的方法是实例方法,就要先new 类再调用。
2)如果其它类的方法是静态方法,就可以直接调用。
举个例子:
public class A
{
//实例方法
public void Method1(){//..}
//静态方法
public static Method2(){//..}
}
要在类B中调用上面2个不同类型方法,则使用方法如下:
调用实例方法:
A a = new A();
a.Method1();
调用静态方法:
A.Method2();
---------------------------------------------
你是想获取sum后的值吧?
那参数类型就要改了:
public class A
{
public static int a = 0;
public static int sum(int n)
{ // 定义了一个静态的方法sum.
return a = a + n;
}
}
public class Test {
public void test()
{
int result = A.sum(5);
}
}
1)如果其它类的方法是实例方法,就要先new 类再调用。
2)如果其它类的方法是静态方法,就可以直接调用。
举个例子:
public class A
{
//实例方法
public void Method1(){//..}
//静态方法
public static Method2(){//..}
}
要在类B中调用上面2个不同类型方法,则使用方法如下:
调用实例方法:
A a = new A();
a.Method1();
调用静态方法:
A.Method2();
---------------------------------------------
你是想获取sum后的值吧?
那参数类型就要改了:
public class A
{
public static int a = 0;
public static int sum(int n)
{ // 定义了一个静态的方法sum.
return a = a + n;
}
}
public class Test {
public void test()
{
int result = A.sum(5);
}
}
展开全部
首先这个静态函数a(静态方法)所在类ClassA和这个静态函数必须是public类型;
然后在你所说的动态类中通过ClassA.a()即可。
c#中没有动态类这么一说,只有静态类型一说。
然后在你所说的动态类中通过ClassA.a()即可。
c#中没有动态类这么一说,只有静态类型一说。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
先把面向对象搞明白,然后看看反射动态调用,问题太过简单笼统。静态方法是可以直接调用的,不需要实例化,MessageBox.Show();就是个典型
来自:求助得到的回答
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
能把需求说详细点么?是不是你不想把具体调用的方法写死在程序里,而是从配置文件读取?是这个意思么?
哦,原来是这样,在A前面加上Public访问修饰符,可能对于TEST类来说,A类是不可见的,所以无法访问A类的静态方法。或者是因为没有引用A类的命名空间,如果是这样的话,在编译时会提示你的。
哦,原来是这样,在A前面加上Public访问修饰符,可能对于TEST类来说,A类是不可见的,所以无法访问A类的静态方法。或者是因为没有引用A类的命名空间,如果是这样的话,在编译时会提示你的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你试试那个 类名.方法名() 能不能调到
比如
class A {
public static int sum(int n) { // 定义了一个静态的方法sum.
return (n-1) * n /2;
}
}
public class Test {
public static void main(String [] args) {
System.out.println(A.sum(10)); //这儿没有声明A的实例,直接用A.sum就调用了静态方法sum
}
}
比如
class A {
public static int sum(int n) { // 定义了一个静态的方法sum.
return (n-1) * n /2;
}
}
public class Test {
public static void main(String [] args) {
System.out.println(A.sum(10)); //这儿没有声明A的实例,直接用A.sum就调用了静态方法sum
}
}
追问
Test类里面那个方法不是静态的呢?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询