2007/03/04開始。ソフトウェア管理やDelerer SEの作者であるおにぎりくんの試行錯誤の記録です。
- [Vue.js]時計?タイムコードを表示するWebアプリ
- (2021/11/16)
- ポエム
- (2020/09/30)
- メトロノームアプリをリリース
- (2017/04/22)
- Sikulix勉強中:便利関数
- (2017/02/25)
- [JavaFX]学習メモ
- (2016/09/22)
SurfaceRT上でC#プログラムを動かす
環境
ターゲット:SurfaceRT (Windows RT 8.0、jailbroken)ホスト:Windows7 + VisualStudio Express 2012 for Windows Desktop
やったこと
自作コンソールアプリを、脱獄済みの初代Surface上で動かす。手順
- VisualStudio Express 2012 for Windows Desktopを起動し、C#のコンソールアプリケーションプロジェクトを作成する
- プログラムを書く
- 動作確認する
- Release / Any CPUでビルドする
- binディレクトリにできたexeファイルをSurfaceRTに転送する
- exeファイルを実行する
結果
exeファイルを実行できた作成したプログラム
using System;
namespace ConsoleApplication2
{
class Program
{
public static CommandShell MainCommandShell = new CommandShell();
static void Main(string[] args)
{
Console.WriteLine("=== sample program ===");
MainCommandShell.loop();
}
}
///
/// ユーザーからコマンド入力を受け、処理を実行するシェル。
/// loopメソッドで開始し、exitメソッドで終了する。
///
class CommandShell
{
///
/// 実行可能なコマンドの配列
///
private Command[] Commands = { new HelpCommand(), new ExitCommand() };
///
/// ループを終了するかどうか
///
private Boolean running = false;
///
/// シェルを開始する
///
public void loop()
{
running = true;
while (running)
{
Console.Write("> ");
string cmd = Console.ReadLine();
foreach (Command command in Commands)
{
if (command.process(cmd))
break;
}
}
}
///
/// シェルを終了する
///
public void exit()
{
running = false;
}
}
///
/// シェルで実行できるコマンド
///
interface Command
{
Boolean process(string cmd);
}
///
/// ヘルプコマンド
///
class HelpCommand : Command
{
public Boolean process(string cmd)
{
if (cmd.StartsWith("help"))
{
Console.WriteLine("help: exit");
return true;
}
else
{
return false;
}
}
}
///
/// 終了コマンド
///
class ExitCommand : Command
{
public Boolean process(string cmd)
{
if (cmd.StartsWith("exit"))
{
Console.WriteLine("exit");
Program.MainCommandShell.exit();
return true;
}
else
{
return false;
}
}
}
}
感想
簡単に動いた。GUIアプリも書いてみたい。
C#らしいプログラムの書き方を忘れてる。命名規則?プロパティ?
PR
スポンサード・リンク
この記事にコメントする
フリーソフト指向::開発日記 by LapisCactus
