2011-10-13 47 views
4

真的很快,我嘗試了谷歌搜索和搜索視覺工作室工具,但我似乎沒有運氣,所以我知道我會在這裏得到一個快速的答案!2簡單而快速的C#特定的Visual Studio問題?

我一直在使用visual studio在vb.net開發一段時間,剛搬回c#,我對一些事情感到惱火,我確信只需要一個複選框在某個地方打勾或取消選中。我在C#中創建一個事件,我必須寫出事件,然後將其添加到標記代碼,在VB我曾經是能夠從左上角下拉選擇控件(何時在代碼後面),然後從右上角的下拉列表中選擇事件,這會自動爲我創建事件並將其附加到控件。我找不到要打開的設置!

其次,當我在子文件夾中創建類時,該類的命名空間被命名爲子命名空間的文件夾名稱。我只是想讓它在默認情況下使用該項目的命名空間,它只是讓人有點討厭!

E.G.

myproject有MyProject的命名空間

MyProject的 - > MyFolder文件 - > MyClass的有名字空間MyProject.MyFolder ....

對不起,悍然基本問題。

問候

回答

9

1)C#和VB處理事件的處理程序訂閱完全不同所以這在C#中沒有直接equivilent。您可以通過切換到屬性窗口的事件選項卡並雙擊要處理的事件(在設計視圖中)來完成此操作。從代碼視圖中,只需鍵入「myControl.EventIWantToHandle + =」,然後雙擊標籤,這將爲您生成事件處理程序方法。做這件事的最好的地方很可能是在構造函數中,正好在InitializeComponent調用的下面。

2)選擇在解決方案資源管理器中的文件夾,並在屬性窗口中的「NamespaceProvider」屬性設置爲 *

*它實際上是一個最佳實踐™文件夾stucture相匹配的命名空間stucture - C#正在幫助你做到這一點(我有點驚訝,VB沒有)

+0

當我訪問我的業務邏輯並且必須使用MyBusinessLogic.Management,MyBusinessLogic.EventSystem,MyBusinessLogic.ECommerce,MyBusinessLogic.Article等時,我才發現它很刺激。我只想添加MyBusinessLogic,然後在代碼中調用我的經理類。我可以看到它在非常大的項目中如何派上用場,但我認爲我已經將我的項目分成了適當大小的層次,所以不需要它。 – ThePower

+0

@ThePower這表明您將項目分開的兩種潛在問題之一。這可能是因爲你的命名空間太細,可能會合並在一起,或者你可能有太多的交叉命名空間引用。再一次,它可能只是你需要在整個業務層上編寫一個門面界面。 – MattDavey

+1

我對第1點不同意...... IDE可以像在VB中一樣,輕鬆地從C#代碼視圖爲您生成事件代碼。由於語言語法,生成的代碼顯然會略有不同。 – tcarvin

0
  1. 這不是在C#中可用。如果你想添加事件,你可以從設計者那裏這樣做。首先選擇控件,在「屬性」對話框中查看控件的事件,然後雙擊事件名稱以創建代碼隱藏。

  2. 這是設計。文件夾在您的命名空間中被固有地視爲層次結構。

對不起,你很沮喪,但相信我學習C#over VB.NET有很多好處。

+0

我原本是一個C#人,所以習慣於這樣做之前的東西,但不得不搬到vb.net一段時間(因爲我的工作),但現在我回到了船上,習慣了時間消耗(主要是第一點),所以想知道是否有可能。顯然不是:-( – ThePower

+0

「對不起,你很沮喪,但是相信我學習C#比VB.NET有很多優點。」......我認爲只有一個,它的市場價值略高。否則,他們已經足夠接近,可以更好地進行編碼了 – tcarvin

+0

你是對的,差別很小,隨着發行版本的不斷縮小,市場價值是我想到的第一大優勢,我也認爲C#是更類似於JavaScript和函數式編程,所以學習C#會給你在這方面的支持。 –