2019年12月15日 星期日

StringBuilder搭配lock達成Thread-Safe

C#沒有StringBuffer這個Thread-Safe 物件
還是可以透過搭配lock達成Thread-Safe 



https://www.sololearn.com/Discuss/657740/can-i-use-a-stringbuilder-in-a-parallel-foreachloop

lock(sb) { sb.Append(fruit).Append("!!").Append(fruit); }

C#
https://github.com/imrexhuang/HelloThreadStatic/blob/master/HelloThreadStatic/HelloThreadStatic/Program.cs 

 Java
https://gist.github.com/imrexhuang/df799e10868fed6d7ec94a7129160691 
 
http://developer.classpath.org/doc/java/lang/StringBuffer-source.html
 182:   public synchronized int length()
 183:   {
 184:     return count;
 185:   }
 
 
http://developer.classpath.org/doc/java/lang/StringBuilder-source.html
 173:   public int length()
 174:   {
 175:     return count;
 176:   } 
 

Inno Setup 操作(1) --- 環境安裝與建立基本安裝包

http://white5168.blogspot.com/2018/03/inno-setup-1.html

C++/C#的namespace方案则不然,一个namespace可以有自己的sub-namespace

https://blog.csdn.net/huang_xw/article/details/8578237

相同点:
1、都是为了重用性(reusebility)——软件工程中一个非常重要的目标。
2、C#里面的命名空间和java中的包都属于访问权限的控制机制。
不同点:
1、C#命名空间只是一种逻辑上的结构,它允许所组织的类文件的物理存放位置与逻辑结构不一致,而Java中类文件的物理结构必须与逻辑结构一致。
2、Java的package本身没有子包的概念,所有package都是并列的关系,没有谁包含谁的问题。比如:org.dominoo.action和org.dominoo.action.asl之间绝对没有包与子包的关系。它们是各自独立的包,各自拥有自己的class/interface的集合。在org.dominoo.action.asl的某个java文件里,如果想引用org.dominoo.action里的某个class/interface,则必须import org.dominoo.action。
C++/C#的namespace方案则不然,一个namespace可以有自己的sub-namespace,我们不妨将namespace也称为package,那么C++/C#的package之间就可能存在包与子包的关系。
3、Java中使用import语句而C#中使用using namespace语句。

Java vs. C#

http://www.javacamp.org/javavscsharp/

C# From a Java Developer's Perspective

http://www.25hoursaday.com/CsharpVsJava.html

A COMPARISON OF MICROSOFT'S C# PROGRAMMING LANGUAGE
TO SUN MICROSYSTEMS' JAVA PROGRAMMING LANGUAGE
By Dare Obasanjo

C# equivalent to Java's charAt()?

https://stackoverflow.com/questions/3581741/c-sharp-equivalent-to-javas-charat

You can index into a string in C# like an array, and you get the character at that index.
Example:
In Java, you would say
str.charAt(8);
In C#, you would say
str[8];

C# String charAt

Moving to C# and the .NET Framework, for Java Developers

https://www.microsoft.com/en-us/download/details.aspx?id=6073


The C# Programming Language for Java Developers
https://docs.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-2008/ms228602(v=vs.90)