Ini ialah arahan csharp yang boleh dijalankan dalam penyedia pengehosan percuma OnWorks menggunakan salah satu daripada berbilang stesen kerja dalam talian percuma kami seperti Ubuntu Online, Fedora Online, emulator dalam talian Windows atau emulator dalam talian MAC OS.
JADUAL:
NAMA
csharp, gsharp - Shell C# Interaktif
SINOPSIS
csharp [--lampirkan PID] [-e EKSPRESI] [fail1 [fail2]] [pilihan]
gsharp [fail1 [fail2]]
DESCRIPTION
. csharp ialah cangkerang C# interaktif yang membolehkan pengguna memasuki dan menilai C#
pernyataan dan ungkapan daripada baris arahan. Yang biasa mcs pilihan baris arahan
boleh digunakan dalam versi pengkompil ini.
. gsharp arahan ialah versi GUI bagi penterjemah C# yang menggunakan Gtk# dan menyediakan
kawasan untuk melampirkan widget juga. Versi ini boleh dilampirkan pada Gtk# yang lain
aplikasi dengan cara yang selamat kerana ia menyuntik dirinya ke dalam gelung utama aplikasi Gtk#,
mengelakkan sebarang masalah yang timbul daripada sifat berbilang benang menyuntik dirinya ke dalam a
proses sasaran.
Fail yang dinyatakan dalam baris arahan akan dimuatkan dan dilaksanakan sebagai skrip.
Bermula dengan Mono 2.10, yang csharp arahan boleh digunakan sebagai penterjemah yang dilaksanakan oleh
boleh laku yang dibenderakan dengan atribut laksana Unix. Untuk melakukan ini, buat baris pertama
kod sumber C# anda kelihatan seperti ini:
"#!/usr/bin/csharp"
Console.WriteLine ("Hello, World");
PILIHAN
Perintah menerima semua arahan yang tersedia untuk mcs perintah, supaya anda boleh
himpunan rujukan, tentukan laluan, tahap bahasa dan sebagainya daripada baris arahan. Dalam
Selain itu, pilihan baris arahan berikut disokong:
--lampirkan
Ini adalah pilihan lanjutan dan hanya boleh digunakan jika anda mempunyai pemahaman yang mendalam
daripada multi-threading. Pilihan ini tersedia pada csharp perintah dan membenarkan
pengkompil untuk disuntik ke dalam proses lain. Ini dilakukan dengan menyuntik C#
shell dalam benang berasingan yang berjalan serentak dengan aplikasi anda. ini
bermakna anda mesti mengambil langkah khas untuk mengelakkan aplikasi sasaran ranap
semasa menggunakannya. Sebagai contoh, anda mungkin perlu mengambil kunci yang betul sebelum ini
mengeluarkan sebarang arahan yang mungkin menjejaskan keadaan proses sasaran, atau penghantaran
arahan melalui penghantar kaedah.
-e EXPRESSION
Ini akan menilai C# EXPRESSION yang ditentukan dan keluar
OPERASI
Sebaik sahaja anda melancarkan arahan csharp, anda akan disambut dengan gesaan interaktif:
$ csharp
Mono C# Shell, taip "help;" Untuk pertolongan
Masukkan pernyataan di bawah.
csharp>
Beberapa ruang nama telah ditetapkan dengan C# ini termasuk Sistem, System.Linq,
Sistem.Koleksi dan Sistem.Koleksi.Generik. Tidak seperti mod yang disusun, ia adalah
mungkin untuk menambah pernyataan menggunakan baharu semasa anda menaip kod, contohnya:
csharp> XmlDocument baharu ();
(1,6): ralat CS0246: Jenis atau nama ruang nama `XmlDocument' tidak dapat ditemui. Adakah anda kehilangan arahan penggunaan atau rujukan perhimpunan?
csharp> menggunakan System.Xml;
csharp> XmlDocument baharu ();
System.Xml.XmlDocument
Setiap kali arahan ditaip, skop arahan itu adalah salah satu daripada kelas yang diperoleh
daripada kelas Mono.CSharp.InteractiveBase. Kelas ini mentakrifkan beberapa statik
sifat dan kaedah. Untuk memaparkan senarai arahan yang tersedia, akses `bantuan'
harta:
csharp> bantuan;
"Kaedah statik:
LoadPackage (pkg); - Memuatkan Pakej yang diberikan (seperti -pkg:FILE)
[...]
ShowVars (); - Menunjukkan pembolehubah tempatan yang ditentukan.
ShowUsing (); - Tunjukkan aktif menggunakan decltions.
bantuan;
"
csharp>
Apabila ungkapan dimasukkan, shell C# akan memaparkan hasil pelaksanaan
ungkapan:
csharp> Math.Sin (Math.PI/4);
0.707106781186547
csharp> 1+1;
2
csharp> "Hello, world".IndexOf (',');
5
Cangkang C# menggunakan kaedah ToString() pada objek yang dikembalikan untuk memaparkan objek, ini
kadangkala boleh mengehadkan kerana objek yang tidak mengatasi kaedah ToString() akan
dapatkan tingkah laku lalai dari System.Object yang hanya untuk memaparkan nama jenisnya:
csharp> var a = XmlDocument baharu ();
csharp> a;
System.Xml.Document
csharp> csharp> a.Nama;
"#dokumen"
csharp>
Beberapa jenis data dikendalikan khas oleh shell interaktif C# seperti tatasusunan,
System.Collections.Hashtable, objek yang melaksanakan System.Collections.IEnumerable dan
IDictionary dan diberikan khas dan bukannya hanya menggunakan ToString ():
csharp> halaman var = Hashtable baharu () {
> { "Mono", "http://www.mono-project.com/"},
> { "Linux", "http://kernel.org"} };
csharp> halaman;
{{ "Mono", "http://www.mono-project.com/" }, { "Linux", "http://kernel.org"}}
Ia adalah mungkin untuk menggunakan LINQ secara langsung dalam cangkerang interaktif C# sejak System.Linq
ruang nama telah diimport pada permulaan. Sampel berikut mendapat senarai semua
fail yang tidak diakses dalam seminggu dari / tmp:
csharp> menggunakan System.IO;
csharp> var last_week = DateTime.Now - TimeSpan.FromDays (7);
csharp> var old_files = dari f dalam Directory.GetFiles ("/ tmp")
> let fi = new FileInfo (f)
> di mana fi.LastAccessTime < LastWeek pilih f;
csharp>
Anda sudah tentu boleh mencetak keputusan dalam satu kenyataan juga:
csharp> menggunakan System.IO;
csharp> var last_week = DateTime.Now - TimeSpan.FromDays (7);
csharp> daripada f dalam Directory.GetFiles ("/ tmp")
> let fi = new FileInfo (f)
> di mana fi.LastAccessTime < last_week pilih f;
[...]
csharp>
LINQ dan asas fungsinya menghasilkan kod atas permintaan untuk nilai pulangan IEnumerable.
Sebagai contoh, nilai pulangan daripada penggunaan `dari' ialah IEnumerable yang dinilai pada
permintaan. Penyampaian automatik IEnumerable pada baris arahan akan mencetuskan
Saluran paip IEnumerable untuk dilaksanakan pada ketika itu dan bukannya pelaksanaannya ditangguhkan
sehingga satu titik kemudian.
Jika anda ingin mengelakkan IEnumerable diberikan pada ketika ini, hanya tetapkan
nilai kepada pembolehubah.
Tidak seperti C# yang disusun, jenis pembolehubah boleh diubah jika pengisytiharan baharu dimasukkan,
sebagai contoh:
csharp> var a = 1;
csharp> a.GetType ();
Sistem.Int32
csharp> var a = "Hello";
csharp> a.GetType ();
System.String
csharp> ShowVars ();
rentetan a = "Hello"
Dalam kes bahawa ungkapan atau pernyataan tidak dilengkapkan dalam satu baris, a
gesaan kesinambungan dipaparkan, contohnya:
csharp> var protokol = rentetan baru [] {
> "ftp",
> "http",
> "gopher"
> };
csharp> protokol;
{ "ftp", "http", "gopher" }
Pengiraan jangka panjang boleh diganggu dengan menggunakan urutan Control-C:
csharp> var done = false;
csharp> sementara (!selesai) { }
Terganggu!
System.Threading.ThreadAbortException: Thread telah digugurkan
di Class1.Host (System.Object& $retval) [0x00000]
di Mono.CSharp.InteractiveShell.ExecuteBlock (hos Mono.CSharp.Class, Mono.CSharp.Undo buat asal) [0x00000]
csharp>
INTERAKTIF EDITING
Cangkang interaktif C# mengandungi editor baris yang menyediakan baris arahan yang lebih maju
fungsi penyuntingan daripada yang disediakan oleh sistem pengendalian. Ini boleh didapati dalam
versi baris arahan, versi GUI menggunakan pengikatan kunci Gtk# standard.
Set arahan adalah serupa dengan banyak aplikasi lain (kunci kursor) dan menggabungkan beberapa
daripada arahan Emacs untuk menyunting serta mekanisme sejarah untuk
Input papan kekunci berikut disokong:
Laman Utama Kunci, Kawalan-a
Pergi ke permulaan baris.
akhir Kunci, Kawalan-e
Pergi ke hujung talian.
Left Arrow Kunci, Kawalan-b
Menggerakkan kursor ke belakang satu aksara.
Kanan Arrow Kunci, Kawalan-f
Menggerakkan kursor ke hadapan satu aksara.
Up Arrow Kunci, Kawalan-h
Kembali dalam sejarah, menggantikan baris semasa dengan baris sebelumnya dalam
sejarah.
Down Arrow Kunci, Kawalan-n
Bergerak ke hadapan dalam sejarah, menggantikan baris semasa dengan lien seterusnya dalam
sejarah.
Pulangkan Laksanakan baris semasa jika pernyataan atau ungkapan telah lengkap, atau menunggu
input selanjutnya.
Kawalan-C
Batalkan baris semasa yang sedang diedit. Ini akan membunuh mana-mana yang sedang dalam proses
suntingan atau pengeditan separa dan kembali ke definisi peringkat atasan.
Backspace Utama
Memadam aksara sebelum kursor
Padam Kunci, Kawalan-d
Memadam aksara pada kedudukan kursor semasa.
Kawalan-k
Padamkan kandungan baris sehingga penghujung baris dan letakkan hasilnya
penimbal potong dan tampal.
Alt-D Memadam perkataan bermula pada kedudukan kursor dan ditambah ke dalam potong dan tampal
penampan. Dengan menekan Alt-d berulang kali, berbilang perkataan boleh ditambahkan ke dalam
tampal penimbal.
Kawalan-Y
Menampal kandungan penimbal bunuh pada kedudukan kursor semasa.
Kawalan-Q
Inilah watak petikan. Ia membolehkan pengguna memasukkan aksara kawalan yang
sebaliknya diambil oleh kemudahan penyuntingan arahan. Tekan Control-Q diikuti dengan
aksara yang anda ingin masukkan, dan ia akan dimasukkan secara verbatim ke dalam arahan
line.
Kawalan-D
Menamatkan program. Ini menamatkan input untuk program.
STATIK HARTANAH DAN KAEDAH
Oleh kerana kaedah dan sifat kelas asas dari mana pernyataan dan
ungkapan yang dilaksanakan adalah statik, ia boleh dipanggil terus dari shell. Ini
adalah sifat dan kaedah yang tersedia:
membatalkan LoadAssembly(rentetan perhimpunan)
Memuatkan perhimpunan yang diberikan. Ini bersamaan dengan menghantar pengkompil bendera -r:
dengan rentetan yang ditentukan.
membatalkan LoadPackage(rentetan pakej)
Mengimport pakej yang ditentukan. Ini bersamaan dengan menggunakan pengkompil dengan
bendera -pkg: dengan rentetan yang ditentukan.
rentetan prompt { dapatkan; menetapkan }
Gesaan yang digunakan oleh shell. Ia lalai kepada nilai "csharp> ". rentetan
ContinuationPrompt { dapatkan; set; } Gesaan yang digunakan oleh shell apabila input selanjutnya adalah
diperlukan untuk melengkapkan ungkapan atau pernyataan.
membatalkan ShowVars()
Memaparkan semua pembolehubah yang telah ditakrifkan setakat ini dan jenisnya. Di dalam
shell csharp mengisytiharkan pembolehubah baru akan membayangi perisytiharan pembolehubah sebelumnya,
ini berbeza daripada C# apabila disusun. membatalkan ShowUsing() Memaparkan semua penggunaan
kenyataan yang berkuat kuasa. Jangka masa Masa (Tindakan a) Rutin berguna untuk masa masa itu
beberapa kod diperlukan untuk dilaksanakan. Parameter ialah perwakilan Tindakan, dan pulangan
nilai ialah TimeSpan. Sebagai contoh:
csharp> Masa (() => { untuk (int i = 0; i < 5; i++) Console.WriteLine (i);});
0
1
2
3
4
00:00:00.0043230
csharp>
Nilai pulangan ialah TimeSpan, yang boleh anda simpan dalam pembolehubah untuk penanda aras
tujuan.
GUI KAEDAH DAN HARTANAH
Sebagai tambahan kepada kaedah dan sifat yang terdapat dalam versi konsol terdapat a
segelintir sifat tambahan tersedia pada versi GUI. Contohnya "PaneContainer"
Gtk.Container terdedah yang boleh anda gunakan untuk mengehoskan widget Gtk# semasa membuat prototaip atau
Harta "MainWindow" yang memberi anda akses kepada tetingkap peringkat atas semasa.
MEMULAKAN FILES
Cangkang C# akan memuatkan semua himpunan Mono dan fail skrip C# yang terdapat dalam
~/.config/csharp direktori pada Unix. Himpunan dimuatkan sebelum fail sumber dimuatkan
dimuatkan.
Fail skrip C# ialah fail yang mempunyai sambungan .cs dan ia hanya perlu mengandungi
pernyataan dan ungkapan, mereka tidak boleh mengandungi definisi kelas penuh (sekurang-kurangnya bukan sebagai
daripada Mono 2.0). Takrif kelas penuh harus disusun ke dalam dll dan disimpan di dalamnya
direktori.
PENGARANG
Pengkompil Mono C# telah ditulis oleh Miguel de Icaza, Ravi Pratap, Martin Baulig, Marek
Safar dan Raja Harinath. Pembangunan itu dibiayai oleh Ximian, Novell dan Marek Safar.
Gunakan csharp dalam talian menggunakan perkhidmatan onworks.net