2017-01-02 15 views
0

Systemまたは他のライブラリ(Console.WriteLine();を含む)を使用することから独立したC#でコンソールプログラムを作成しようとしています。私はC#で書かれたSDKを作っています(Unity 3Dとほぼ同じです)。しかし私はカスタムテキストプリンタを作る方法を知らない。私は、Web上の記事や、私がやりたいことに関連するStackoverflowの質問が見つかりませんでした。これをやり遂げなければならないか、あるいはConsole.WriteLine();が存在しないでしょう。ここで C#でConsole.WriteLine()を使わずにテキストを表示するには

は、これまでの私のコードですが、私はそれを助けるどのくらいかわからない:

public static class GPrint 
{ 
    public static void Print(string str) 
    { 



    } 
} 

は、私はほとんどすべてのstring.something()str.something()のような明白なものの探求しましたが、があるように思われます文字列を画面に印刷することには何も関係しません。

System名前空間を使用せずに単純なConsole.WriteLine()クローンを作成する方法はありますか?

ありがとうございます!

+5

好奇心の理由から、なぜこれが必要ですか? – Mahdi

+2

'Console'クラスは、基本的にコンソールアプリケーションに含まれている' mscorlib.dll 'に含まれているので、なぜあなたがこれをしたいのか分かりません。 'String'クラスも' mscorlib'にあります。 ( 'string'は' System.String'のエイリアスです。) 'System'を使いたくない場合は、' string.Something() 'を使うことはできません。言い換えれば、 'mscorlib'を使わなければ、最も簡単なことはできません。 – haindl

+0

1つの大きな複数行のテキストボックスでウィンドウフォームまたはWpfを作成し、 'Console.WriteLine'を使わずにそこに印刷します。 – Fabio

答えて

4

System.Consoleのように、stdin/stdoutを超える抽象化は、.NETチームがcommon object runtime library (mscorlib)に組み込むことを決定したプロセスに固有のものです。

つまり、標準ストリームを介して入力を受け取り、出力を放出させることは、ランタイムと基本クラスライブラリに深入りしているため、不可能であるか、少なくとも実現可能ではない。

System.ConsoleまたはSystem名前空間の他のクラスを使用していないという理由だけで.NETコンソールアプリケーションを実行することはできません。

参照Is mscorlib.dll/mscoree.dll loaded when .NET application runsでもハンス答え:

技術的に場合は実際にそれだけであなたが代替を提供する場合

に動作します[...]がmscorlib.dllロードされませすることが可能ですあなたはmscorlibを完全に省略するつもりはありませんが、System.Consoleを使わずにコンソールに書き込むことに興味があります。MSDN: Console Functionsを参照してください。 Platform Invokeを使用する必要があります。ただし、これは価格で提供されます。実行中のプラットフォームが関連するDLLに置き換えられない限り、アプリケーションはWindows上でのみ実行されます。

+2

Ha!あなたは私にそれを打つ。彼は本質的に、.NET Frameworkを使用せずにC#プログラムを書く方法を求めています。より高いレベルの言語を使用することの全ポイントは、より低いレベルのコードを書く必要がない。 – JuanR

+0

詳細な回答ありがとう!それは助けになった! – Kivitoe

関連する問題