C#與java的異同
using System.Collections;
namespace VirtualDemo
{
publicabstractclass Expression
{
publicabstractdouble Evaluate(Hashtable vars);
}
publicclass Constant : Expression
{
double value;
public Constant(double value)
{
this
}
publicoverridedouble Evaluate(Hashtable vars)
{
return value;
}
}
publicclass VariableReference : Expression
{
string name;
public VariableReference(string name)
{
this.name = name;
}
{
object value = vars[name];
if (value ==null)
{
thrownew Exception("Unknown variable: "+ name);
}
return Convert.ToDouble(value);
}
}
publicclass Operation : Expression
{
Expression left;
Expression right;
public Operation(Expression left, char op, Expression right)
{
this.left = left;
this.op = op;
this.right = right;
}
publicoverridedouble Evaluate(Hashtable vars)
{
double x = left.Evaluate(vars);
double y = right.Evaluate(vars);
switch (op)
{
case'+': return x + y;
case'-': return x - y;
case'*': return x * y;
case'/': return x / y;
}
thrownew Exception("Unknown operator");
}
}
publicclass Test
{
publicstaticvoid Main(string []args)
{
Expression e =new Operation(
new VariableReference("x"),
'*',
new Operation(
new VariableReference("y"),
'+',
new Constant(2)
)
);
Hashtable vars =new Hashtable();
vars["x"] =3;
vars["y"] =5;
Console.WriteLine(e.Evaluate(vars)); // Outputs "21" vars["x"] =1.5;
vars["y"] =9;
Console.WriteLine(e.Evaluate(vars)); // Outputs "16.5"
}
}
}
相關推薦
C#與Java異同
相同點:編譯為機器獨立、語言獨立的程式碼,執行在託管執行環境中 採用垃圾收集機制,同時摒棄了指標; 具有強有力的反射能力; 沒有標頭檔案,所有程式碼都在包裝程式集裡;
C#與java的異同
using System;using System.Collections;namespace VirtualDemo { publicabstractclass Expression { publicabstractdouble Evaluate(Hashtable var
C++與Java,C#的異同(一):值,地址,引用
Java,C#已經比較熟悉,最近在從0開始自學C++。學習過程中必然會與Java,C#進行對比,有吐槽,也有點贊。 先來講講最基本也是最重要的部分:引數傳遞的方式。 對於型別, Java分基本型別、複合型別,從另外一個角度分是值型別,引用型別。在展開對比前, 我們先來看看三個關鍵方式: 值
c++與java的一些不同點
編程語言 輸出結果 float 面向對象 完成 可能 lang style 重載 Java、C、C++在近兩年一直穩居世界編程語言排行榜前三名。Java與c++都是面向對象的語言,但Java晚於C++發布,部分語法和思想也參考了C++,只是Java 沒有頭文件、指針、
c#與java中byte位元組的區別及轉換方法
在java中 byte的範圍在 [-128,127] 在C#中 byte的範圍在 [0,255] 所以 java程式與C#程式 進行資料傳輸的時候 要先把java的byte陣列轉換成在[0,255]範圍內的int型陣列a[];再把a[]進行加密得到字串str, 把字串
C++ 與 Java 語言對比
1 . Java 是完全封裝的,而 C++ 的函式是可以定義在 Class 的外部的。從這裡就可以看出 C++ 的 OO 思想不夠徹底,至少在封裝這一點上。 2. C++ 中有拷貝
C#與JAVA的區別
C#(C-Sharp)是Microsoft的新程式語言,被譽為“C/C++家族中第一種面向元件的語言”。然而,不管它自己宣稱的是什麼,許多人認為C#更像是Java的一種克隆,或者是Microsoft用來替代Java的產品。事實是否是這樣的呢?
android與PC,C#與Java 利用protobuf 進行無障礙通訊【Socket】
轉自https://www.cnblogs.com/TerryBlog/archive/2011/04/23/2025654.html protobuf 是什麼? Protocol buffers是一種編碼方法構造的一種有效而可擴充套件的格式的資料。 谷歌使用其內
c#與java對比
#c#課時01 ##c#與java對比 ###建立: 檔案-新建-專案-VisualC#-控制檯應用程式。 ###結構: C#: using System; namespace HelloWorld { class Hello { static void Main()
c++與java的優缺點!
大多數程式設計師都認為C/C++會比Java語言快,甚至於覺得從Java語言誕生以來,“執行速度緩慢”的帽子就應當被扣在頭頂,這種觀點的出現是由於Java剛出現的時候JIT編譯技術還不成熟,主要靠直譯器執行的Java語言確實性能比較低下。但是在今天JIT編譯技術已經發展成熟之後,Java語言
C#與java互動匯入EXCEL
採用webservice與java互動: 大致思路: 通過C#來獲取檔案, 將檔案讀取為BYTE[] ,然後通過webservice 將其傳入java後代,然後去解析EXCEL; Excel 如下: C#端程式碼:
C#與Java AES 加密解密
參考文件:https://www.cnblogs.com/xbzhu/p/7064642.html 前幾天對接Java介面,需要C#加密引數,Java解密。奈何網上找了一堆大同小異的加解密方法都跟Jaca加密的密文不一致,Java介面也無法解密,直到看見上面連結的第二種方法。能夠正常的解密Java加密的
C #與java進行通訊?傳輸字串為例。
C#端程式碼: String contents =“hello 這是C#傳來的資料”;//請求string uri = "http://192.168.1.149:8080/專案名/TestServlte";HttpWebRequest request = HttpWebR
【C++】總體認識,c++與java簡單對比
學習了C++的一些知識,因為Java是用C寫的,而C++是對C的封裝,所以有java基礎,學C++不難。 C++在形式上比java繁瑣,比如要有main方法,函式定義,成員變數賦值,靜態成員賦值等。 但是C++有指標型別,所以在操作
c# 與java base64 不一致解決方案
不一致的問題不是編碼的問題 而是json字串的問題通常我們會json 巢狀 我們先來看連個字串 {"contentType":"","httpMethod":"POST","paramMap":"{\"keyword\":\"華為\"}","url":"https:\/\/bizapi.jd.com\/a
確定進位制 【C++與java】
描述 6*9 = 42 對於十進位制來說是錯誤的,但是對於13進位制來說是正確的。即, 6(13) * 9(13) = 42(13), 而 42(13) = 4 * 131+ 2 * 130= 54(10)。 你的任務是寫一段程式讀入三個整數p、q和 r,然後確定一個進位制
Objective-C與Java 方法呼叫比較
Objective-C:宣告方法:-(Return-type)method:(Parameter-type)parameter1{...};多個引數時:-(Return-type)methodPart1:(Parameter-type)parameter1 methodPart2:(Parameter-typ
C++與JAVA的區別
通常,我們聊到Java,第一印象“面向物件”,“沒有指標,編寫效率高,執行效率較低”。更深入、專業一點就談論 “java記憶體自動回收(GC垃圾回收機制),多執行緒程式設計”。** java的三大特性是封裝、繼承和多型。** 總結如下: 1、&
c++與java中關於訪問修飾符的區別
#include <iostream> #include <math.h> using namespace std; class A { protected:void fun(){cout<<"hello"<<endl;} }; int main(){A a;a
面向過程 面向物件的區別以及C++與Java的區別
面向物件和麵向過程的區別 面向過程一種以事件為中心的程式設計思想,以功能(行為)為導向,按模組化的設計,就是分析出解決問題所需要的步驟,然