2011-05-05 53 views
1

我还在还挺新的C#,有件事情我不能完全得到认真处理:基本的C#查询

在VBA例如,如果有一些代码,我需要在整个应用程序,我会把它放进一个函数然后调用它在以往任何时候,我需要它只是通过使用该功能的名称,如

Sub Something() 
    If variable = x then 
     RunMyFunction 
    end if 
End Sub 

是否有调用可重用的代码在C#中的一个类似的方式?我的确意识到它是一个完全不同的野兽什么伊夫与

感谢

+6

这是一个笑话?不重要的是,你不需要我们的答案,你需要一门关于(面向对象)编程的课程或好书。当然,这就是所谓的“功能”。它在VB(A)中声明的方式非常接近。public void testFunc(){Console.WriteLine(“Hello World!”); }'。我已经投票结束这个,只是为了记录。 – Bobby 2011-05-05 13:10:04

+0

不是一个笑话 - 只是试图找到我的方式在c#中寻找新的东西 – DarkW1nter 2011-05-05 13:11:58

+0

当你调用一个函数时,你必须在函数名的末尾加上括号,并且在每行的末尾还有一个分号,即myFunction()。 – Menahem 2011-05-05 13:12:04

回答

0

是的,我有时会创建一个名为CommonFunctions.cs新的类,这个类里面我会有方法:

public class CommonFunctions 
{ 
    public static void Something(int Variable) 
    { 
     if(Variable == 5) 
      CommonFunctions.RunAnother(); 
    } 
    public static void RunAnother() 
    { 

    } 
} 
+0

感谢所有的输入 - 现在更清晰! – DarkW1nter 2011-05-05 14:51:40

2
private void Something() 
{ 
    if (variable == x) 
    { 
     RunMyFunction(); 
    } 
} 

private void RunMyFunction() 
{ 
    // does something 
} 

换句话说工作 - 这是基本相同的。你将你的可重用函数定义为一个方法(上面的RunMyFunction),然后按名称(括号)来调用它。

+1

您将'x'分配给'variable'而不是比较它们。 – 2011-05-05 13:11:01

+1

@FrédéricHamidi - 错字 - 只是测试:) – 2011-05-05 13:12:07

2

是的C#也有函数。 Sub实际上是一个void“返回值”的函数。

你的代码转换为C#的那么粗的翻译是:

string RunMyFunction() 
{ 
    return "hello"; 
} 

void Something(variable, x) 
{ 
    if (variable == x) 
    { 
     string value = RunMyFunction(); 
     //..... 
    } 
} 
0

这里是一个函数的例子:

public int AddNumbers(int number1, int number2) 
{ 
    int result = number1 + number2; 
    if(result > 10) 
    { 
     return result; 
    } 
} 

您可能会发现这篇文章有用:

http://csharp.net-tutorials.com/basics/functions/

您需要从VBA制作的最大离开是C#是真正面向对象。你必须习惯于函数是你必须实例化的类的成员(在大多数情况下)。

0

如果你的函数没有返回值,使用无效:

private void FunctionName() 
    { 
     // Do something... 
    } 

如果函数返回值大于函数名称前有值类型:

private int FunctionNameReturnInt(int a, int b) 
{  
    // Do something... 
    int res = a + b; 
    return num; 
} 

...

// Calling functions 
FunctionName(); 

int res; 
res = FunctionNameReturnInt(1,2); 

`