2011-05-05 59 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); 

`