簡體   English   中英

如何將通用C#代碼添加到Visual C#2008 Express項目/解決方案?

[英]How do I add common C# code to a Visual C# 2008 Express project/solution?

(在MS Visual環境中,我仍然感覺像是一個完全的新手……所以請耐心等待!)

我正在使用Microsoft Visual C#2008 Express Edition。

我有一個項目,該項目有兩種不同的形式。 每個表單的.cs文件開始:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.Common;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace MyNameSpace
{
    public partial class MyFormName : Form
    {
...

(...第二個是“ MyFormName2”,但除此之外沒有區別)

我想編寫一個我知道兩種形式都需要訪問的函數。 我右鍵單擊項目,選擇“添加”,選擇“新建項目”,然后選擇“代碼文件”,並將文件命名為“ Common.cs”,這給了我項目中一個完全空白的文件。

我該如何設置...? 我以為我應該做以下事情...

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.Common;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace MyNameSpace
{
}

...但是當我嘗試添加類似的功能時:

在該命名空間中,我的public void mytestfunc(){}出現以下錯誤:

“預期的類,委托,枚舉,接口或結構”

如何設置內容,以便MyFormName和MyFormName2都可以使用“ mytestfunc”?

謝謝!

-Adeena

更新:了解(現在)所有內容都必須在一個類中,但是后來我不明白如何真正使用它。 這是否意味着我必須創建一個對象? 這個共同的功能恰好只是一些數學...

所以現在如果我有這個:

namespace MyNameSpace
{
    public class MyCommonClass
    {
        public void testFunc()
        {
            MessageBox.Show("Hee hee!");
            return;
        }
    }
}

...如何從我的表格中調用testFunc? 我必須執行以下操作:

MyCommonClass temp = new MyCommonClass;
temp.testFunc();

還是有另一種方法來調用testFunc?

如果您執行以下操作:

namespace MyNameSpace
{
    public class myclass
    {
        public myMethod()
        {
            // Code
        }
    }
}

您將能夠實例化並訪問它。 如果將其更改為:

namespace MyNameSpace
{
    public class myclass
    {
        public static myMethod()
        {
            // Code
        }
    }
}

您將能夠調用myClass.myMethod而無需實例化新的myClass。

簡短的答案是,一切都必須放在一個類中; 我建議您坐下來學習基礎教程,以幫助您掌握基礎知識...

代碼必須在類內部。

它看起來像這樣:

using System;

namespace MyNameSpace
{
   public class CommonHelper
   {
       public string FormatMyData(object obj)
       {
            //do something
            return String.Empty;
       }
   }
}

如果您調用的函數與表格無關,則使其靜態

namespace myns
{
    public static class myhelper
    {
        public static void DoSomething()
        {
        }
    }
}

並使用myhelper.DoSomething();調用該方法;

如果您要調用的函數以某種方式與表單相關,例如跨多個表單的通用功能,請從Form派生一個類(不需要可視表單)並將其作為可視表單的基類:

namespace myns
{
    public class MyFormBase : Form
    {
        protected void DoSomethingWithTheForm()
        {
        }
    }
}

並在您的表單的.cs中:

namespace myns
{
    public partial class MyFormName : MyFormBase
    {
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM