changeset 20:10abbf7dfd93

update Chrisite C# example
author riono <e165729@ie.u-ryukyu.ac.jp>
date Wed, 05 May 2021 20:16:04 +0900
parents 37ae4f921c34
children ddfb4ce43a83
files Paper/riono-sigos.pdf Paper/riono-sigos.tex Paper/src/FinishHelloWorld.cs Paper/src/HelloWorldCodeGear.cs
diffstat 4 files changed, 25 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
Binary file Paper/riono-sigos.pdf has changed
--- a/Paper/riono-sigos.tex	Wed May 05 20:01:40 2021 +0900
+++ b/Paper/riono-sigos.tex	Wed May 05 20:16:04 2021 +0900
@@ -132,9 +132,9 @@
 \section{プログラムの例}
 Code \ref{code:javaSHW} 、Code \ref{code:javaHWC} 、Code \ref{code:javaFHW} はChrisite の機能を使用してhello world を出力する例題である。
 
-\lstinputlisting[caption=StartHelloWorld, label=code:javaSHW]{src/StartHelloWorld.java}
-\lstinputlisting[caption=HelloWorldCodeGear, label=code:javaHWC]{src/HelloWorldCodeGear.java}
-\lstinputlisting[caption=FinishHelloWorld, label=code:javaFHW]{src/FinishHelloWorld.java}
+\lstinputlisting[caption=java StartHelloWorld, label=code:javaSHW]{src/StartHelloWorld.java}
+\lstinputlisting[caption=java HelloWorldCodeGear, label=code:javaHWC]{src/HelloWorldCodeGear.java}
+\lstinputlisting[caption=java FinishHelloWorld, label=code:javaFHW]{src/FinishHelloWorld.java}
 
 Code \ref{code:javaSHW} ではCodeGearManager を作り、setup(new CodeGear) を行うことで各CodeGear に記述されたDataGear の待ち合わせを行う。全てのDataGear が揃った場合にCodeGear が実行される。CodeGearaManager の作成方法はStartCodeGear を継承したものから、createCGM(port) を実行することにより、CodeGearManager が作成できる。
 
@@ -150,11 +150,14 @@
 
 
 \section{C\# でのChristie}
-
-Code \ref{code:javaSHW} 、Code \ref{code:javaHWC} 、Code \ref{code:javaFHW} がC\#ではこうなります
+Code \ref{code:csSHW}、Code \ref{code:csHWC}、Code \ref{code:csFHW}、はCode \ref{code:javaSHW} 、Code \ref{code:javaHWC} 、Code \ref{code:javaFHW} の例題をC\# に書き換えたものである。
 
 \lstinputlisting[caption=C\# StartHelloWorld, label=code:csSHW]{src/StartHelloWorld.cs}
+\lstinputlisting[caption=C\# StartHelloWorld, label=code:csHWC]{src/HelloWorldCodeGear.cs}
+\lstinputlisting[caption=C\# StartHelloWorld, label=code:csFHW]{src/FinishHelloWorld.cs}
 
+java とC\# はクラスや変数などの記述方法が似ているため、書き換えの際の大きな変更は少ない。
+C\# ではjava のannotation はなく、attribute を利用する。attribute の使用方法はCode \ref{code:csHWC} の5行目のように、attribute を付与したい変数の前に[Take] などつけることで使用可能である。
 
 
 \section{Unity}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Paper/src/FinishHelloWorld.cs	Wed May 05 20:16:04 2021 +0900
@@ -0,0 +1,8 @@
+public class FinishHelloWorld : CodeGear {
+    [Take] private string hello;
+    [Take] private string world;
+
+    public override void Run(CodeGearManager cgm) {
+        cgm.GetLocalDGM().Finish();
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Paper/src/HelloWorldCodeGear.cs	Wed May 05 20:16:04 2021 +0900
@@ -0,0 +1,9 @@
+public class HelloWorldCodeGear : CodeGear {
+    [Take] string helloWorld;
+    
+    public override void Run(CodeGearManager cgm) {
+        Console.Write(helloWorld + " ");
+        cgm.Setup(new HelloWorldCodeGear());
+        cgm.GetLocalDGM().Put(helloWorld, helloWorld);
+    }
+}