C # etkileşimli penceresi kodumla etkileşime girebilir mi?


161

Visual Studio 2015 veya sonraki sürümlerde, 'C # etkileşimli penceresini' açabilir ve kodu çalıştırabilirim:

> 5 + 3
8

Çok şirin. Şimdi nasıl elimden etkileşim kodumu -Benim sınıfları? Açık bir projem olduğunu varsayalım.

> new Cog()
(1,5): error CS0246: The type or namespace name 'Cog' could not be found (are you missing a using directive or an assembly reference?)

Roslyn interaktif bir pencere değildir. .NET derleyici API'sı. Şeyleri kaçırmadığınızdan emin misiniz?
Tigran

3
Bu, bir özellik Roslyn ile dağıtılmaktadır blogs.msdn.com/b/csharpfaq/archive/2012/01/30/...
Albay Panik

Bunun için her zaman standart Immediate penceresini kullanırım - kendi türlerinizle de çalışır.
Polyfun

2
'Standart anında pencere' nedir?
Albay Panik

@MattHickford Daha fazla bilgi için güncellenmiş cevabımı görün
tembellik

Yanıtlar:


221

Visual Studio 2015 kullanırken:

Sen giderek İnteraktif penceresini açabilirsiniz > Diğer Pencereler> C # Etkileşimli Görünümler ,

Ardından, projenizi sağ tıklayın ve bağlam menüsünden Initialize Interactive ile Proje'yi çalıştırın .


Eski sürümler için:

C # Etkileşimli Pencereyi kodunuzla birlikte kullanmak için, önce kodunuzu derlediğinizden emin olun, ardından sonuçta oluşan derlemeye aşağıdaki #rkomutla bir başvuru ekleyin :

C # komut istemi


Kodunuzu kullanarak etkileşimde bulunmak için Anında Pencereyi de kullanabilirsiniz , örneğin:

Anında Pencere


1
Teşekkürler. C # interaktif penceresini daha çok seviyorum. Hemen pencere düşmanca, otomatik tamamlama yok. Console.WriteLine("hey") The name 'Console' does not exist in the current context System.Console.WriteLine("hey") Expression has been evaluated and has no value
Albay Panik

-1 soru roslyn'in bir parçası olan yeni C # REPL (interaktif pencere) ile ilgilidir. Don Syme'in F # İnteraktif Penceresini geliştirirken kullandığı c9 videolarına bir göz atın. İyi şeyler. channel9.msdn.com/Series/…
John Dhom

25
@JohnDhom Neden downvote? Cevaplarım tamamen C # interaktif penceresinden kendi kodunuzla nasıl etkileşim kurabileceğinizi gösteriyor (bunu gösteren bir ekran görüntüsü bile var).
tembellik

8
Net Core projelerinde, bağlam menüsü öğesi görünmez, bu nedenle #r yöntemi gereklidir. Bu cevap bunun için mükemmel.
Ryan

2
Bir tane daha yararlı ipucu eklemek istiyorum: Eğer bazı çalışma zamanı şeyleri kullanmak istiyorsanız, kolayca bu yönergeyi ekleyebilirsiniz:#r "System.Runtime"
mostafa8026

70

Kendi projenizdeki sınıfları kullanabilirsiniz.
Çözümünüzü sağ tıklayın ve "Projeden Etkileşimi Sıfırla" yı seçin.

Daha fazla bilgiye ihtiyacınız varsa, işte kaynak:
Roslyn ile birlikte gelen C # Etkileşimli Penceresini Kullanma - Bölüm 2


1
Teşekkürler, kulağa doğru geliyor. Ne yazık ki, açıklandığı gibi çalışmıyor - bunu denediğim proje ne olursa olsun, 'geçersiz montaj adı' yazan bir hata uyarısı verir. Sinir bozucu bir şekilde, hangi meclis hakkında konuştuğunu açıklamaz. Sanırım yazılım bozuk.
Albay Panik

@MattHickford: Proje ne tür bir proje? Basit ConsoleApplications ve ClassLibraries'in ötesinde çok fazla test yapmadık.
Kevin Pilch

Kevin'e sorduğun için teşekkürler. Ben sadece bazı küçük projelerde 'projeden interaktif sıfırlama' denedim, doğru çalıştı. Güvenilir bir şekilde çalışmadığı projeler daha karmaşık kütüphaneler ve birçok referansı olan uygulamalardır.
Albay Panik

25
Bunların hiçbiri artık VS 2015 için geçerli değil. Bağlam menüsü komutu gitti ve #rproje montajlarımı bulamıyor. Herhangi bir fikir?
ygoe

18
VS 2015 Güncelleme 3'te, çözümdeki bir projeye sağ tıklandığında (Solution Explorer'da) bir 'Project ile Etkileşimi Başlat' vardır.
Andrei Pana

44

@ Botz3000 yanıtından bir güncelleme.

Bulmak istediğiniz komutun adı artık "Project ile Etkileşimi Başlat"

resim açıklamasını buraya girin

Ayrıca benim C # interaktif pencere görüntülenebilir değildi, ben bu komutu bulamadık dikkat çekiyor.


11
Hayır değil. Ekran görüntüsünün işaret ettiği nokta ile aynı noktaya geldim.
Tom

3
@Tom ne tür bir projeyle çalıştığınıza bağlı olarak çalışıyor ya da çalışmıyor gibi görünüyor. Bulduğunuzda üzerinde çalıştığınız proje türü neydi?
Luke Hammer

@WizardHammer İnanıyorum Sınıf Kütüphanesi
Tom

10
Bunu bir NetStandard kütüphanesi ile çalışmak için almaya çalışıyorum ve seçenek bağlam menüsünde yok
ChadT


11

Tamamen katılıyorum "Project ile etkileşimi başlat" harika.

Benim yaklaşımım kütüphane ve kullanımı içine itme sınıflara ise // css_reference C # komut dosyası veya #r C # Interactive penceresinde

Örneğin:

#r "D:\\dev\\DbHMonData\\LoadH2Stats\\bin\\Debug\\DbHMonStats.dll"
using DbHMonStats;
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.