javaÓëc#ͨÐÅÊý¾Ýת»»ÎÊÌâ
/ÓÉÓÚJAVAÓïÑÔµÄÊý¾ÝÀàÐͶ¼ÊÇÓзûºÅÀàÐÍ£¬¶øC# C++Ò»°ãÊý¾ÝÀàÐͶ¼ÊÇ·ÖÓзûºÅºÍÎÞ·ûºÅ,
//Òò´ËÔÚͨÐŹý³ÌÖд«µÝµÄByte[]ÎÞ·¨Ö±
½Óת»»³ÉC#ÐèÒªµÄÀàÐÍ£¬
//ÒÔÇ°µ¹ÊÇûעÒâÕâЩϸ½Ú£¬ÒòΪһ°ãÓÃÒ»ÖÖÓïÑÔ±à³Ì£¬
//´ó¶¼ÓÐÄÚÖõÄת»»·½·¨¡£¿çÓïÑÔ»·¾³µÄת»»¾ÍµÄ×Ô¼º¶¯
ÊÖÏë°ì·¨ÁË¡£
1¡¢javaµÄByte[]ת»»³Éc#µÄInt32
private int
CoverJavaByteToInt(byte[] bytes){
char[] chars =
Encoding.ASCII.GetChars(bytes);
int r = 0;
r |= (((int)(chars[0]))
& 0xff) << 24;
r |= (((int)(chars[1])) & 0xff)
<< 16;
r |= (((int)(chars[2])) & 0xff) << 8;
r |=
(((int)(chars[3])) & 0xff);
return r;
}
2¡¢javaµÄByte[]ת³Éc#µÄ
unshort
private ushort CoverJavaByteToUnshort(byte[] bytes){
ushort
r = 0;
char[] chars=Encoding.ASCII.GetChars(bytes);
r |=
(ushort)((chars[0] & 0xff) << 8);
r |= (ushort)(chars[1]
& 0xff) ;
return r;
}
´Ë´úÂë»á³öÏÖ´íÎóÔÚijЩÇé¿ö£¬´óÖÂÔÒòÊÇÒòΪת»»charʱֵÔâµ½¸Ä±ä£¬Ó¦¸ÃÊDZíʾ·¶Î§ÎÊÌâµ¼ÖÂ
private ushort
CoverJavaByteToUnshort(byte[] bytes){
ushort r = 0;
r |=
(ushort)((bytes[0] & 0xff) << 8);
r |= (ushort)(bytes[1]
& 0xff);
return r;
}
´Ë´úÂëÄ¿Ç°²âÊÔûÎÊÌâÁË£¬Èç¹ûËÓöµ½ÌØÊâÇé¿ö ÇëÓëÎÒÁªÏµ
3¡¢
javaµÄByte[]ת³Éc#µÄstring
£¨×¢Ò⣺ÎÒÕâ¸öº¯ÊýÊǸù¾ÝÎÒ¹¤×÷ÐèҪдµÄÒòΪ¿ÉÄÜ´æÔÚ¶à¸östring»òÆäËûÊý¾ÝÀàÐÍÔÚÕû¸öÊý¾ÝÁ÷
ÖУ¬ÈçÄã½ÓÊÕµÄÊý¾ÝÁ÷¾ÍÊÇ×Ö·û´®£¬ÍêÈ«¿ÉÒÔûÕâôÂé·³£¬Çë×ÔÐÐÐ޸ģ©///
/// ת»»Byte[]µ½String ĬÈϲÉÓÃUTF-8///
/// Êý¾ÝÁ÷µÄBYTEÊý×é/// ×îÖÕת»»½á¹û×Ö·û´®
/// StringµÄÔÚÊý¾ÝÁ÷ÖеÄÆðʼλÖÃ
///
ÏÂÒ»¸öÊý¾ÝÀàÐÍÔÚÊý¾ÝÁ÷ÖеÄÆðʼλÖÃ
private int CoverJavaByteToString(byte[] bytes,ref
string str,int indexStart){
byte[] uidLen = new byte[2];
Array.Copy(bytes,indexStart, uidLen, 0, 2);
ushort len =
CoverJavaByteToUnshort(uidLen);
str =
Encoding.UTF8.GetString(bytes,2+indexStart, len);
return
str.Length+2+indexStart;
} ......
Ïà¹ØÎĵµ£º
ÔÚcÖÐenumµÄʹÓúÍstructºÜÏñ
enum name{
a,b,c
};
struct name{
int a;
int b;
char c;
};
or
typedef struct{
int a;
int b;
char c;
}Name;
ʹÓõÄʱºò¶¼ÒªÏÈÉùÃ÷±äÁ¿
enum name n1,n2,n3;
n1=a;
n2=b;
n3=enum name(3-1);
struct name sn1,sn2;
s ......
֮ǰд¹ýÒ»¸öʵÏÖÁËijÖÖ¹¦ÄܵÄjava³ÌÐò£¬µ«ÓÉÓÚ½üÈÕ“¹¤×÷”ÐèÒª£¬ÓÖÐèÒªÔÚc/c++ÖÐÖØÐÂʹÓøù¦ÄÜ¡£ÎªÁ˽Úʡʱ¼ä£¬ÎÒ²ÉÈ¡ÁËÔÚc/c++Öе÷ÓÃjava³ÌÐòµÄ·½·¨£¬µ«Ö®Ç°Ã»ÓнӴ¥¹ýÀàËƵĶ«Î÷£¬µ½ÍøÉÏÒ»²é£¬¹ûÈ»ÓÐÀàËƵĶ«Î÷£¬ÐÄÖаµÏ²ing...¡£²éµ½µÄ×ÊÁÏÖÐÓм¸¸ö²»´íµÄÍøÒ³£º
&nbs ......
¾²Ì¬±äÁ¿
µ±ÎÒÃDZàдһ¸öÀàʱ£¬Æäʵ¾ÍÊÇÔÚÃèÊöÆä¶ÔÏóµÄÊôÐÔºÍÐÐΪ£¬¶ø²¢Ã»ÓвúÉúʵÖÊÉϵĶÔÏó£¬Ö»ÓÐͨ¹ýnew¹Ø¼ü×ֲŻá²úÉú³ö¶ÔÏó£¬Õâʱϵͳ²Å»á·ÖÅäÄÚ´æ¿Õ¼ä¸ø¶ÔÏó£¬Æä·½·¨²Å¿ÉÒÔ¹©Íⲿµ÷Óá£
ÓÐʱºò£¬ÎÒÃÇÏ£ÍûÎÞÂÛÊÇ·ñ²úÉúÁ˶ÔÏó»òÎÞÂÛ ......
using System;
using System.Collections.Generic;
using System.Text;
using System.Data.SqlClient;
using System.Xml;
using System.Data;
namespace MyDbTest
{
class Program
{
static void Main(string[] args)
{
SqlConnection thisConnection = new SqlConnection(
@ ......
1.Duplicated Code ´úÂëÖظ´¼¸ºõÊÇ×î³£¼ûµÄÒìζÁË¡£ËûÒ²ÊÇRefactoringµÄÖ÷ҪĿ±êÖ®Ò»¡£´úÂëÖظ´ÍùÍùÀ´×ÔÓÚcopy-and-pasteµÄ±à³Ì·ç¸ñ¡£ÓëËûÏà¶ÔÓ¦OAOOÊÇÒ»¸öºÃϵͳµÄÖØÒª±êÖ¾¡£ 2.Long method ËüÊÇ´«Í³½á¹¹»¯µÄ“ÒŶ¾”¡£Ò»¸ö·½·¨Ó¦µ±¾ßÓÐ×ÔÎÒ¶ÀÁ¢µÄÒâͼ£¬²»Òª°Ñ¼¸¸öÒâͼ·ÅÔÚÒ»Æð¡£ 3.Large Class ´óÀà¾ÍÊÇÄã°ÑÌ«¶ ......