私はC#が初めてで、もう少し学習しようとしています...今、静的ArrayListを理解するのに苦労しています。
PHPで私は定義することができます:
Class Singleton{
private static $instance;
private static $arrayDemo = array();
private function __construct(){}
public static function getInstance(){
if(!isset(self::$instance))
self::$instance = new Singleton();
return self::$instance;
}
public static addItem($item){
self::$arrayDemo[] = $item;
}
public static getItems(){
return self::$arrayDemo[];
}
}
Singleton::getInstance();
Singleton::addItem("first");
Singleton::addItem("second");
Singleton::getItems(); // returns {0=>first,1=>second}
ページをリロードすると、同じ結果が得られました (0=>最初、1=>秒)
同じことを得るためにC#でシングルトンパターンを実装しようとしていますが、値が繰り返されました:
public sealed class Singleton
{
private static readonly Singleton instance = new Singleton();
private static ArrayList ArrayDemo = new ArrayList();
private Singleton() { }
public static Singleton Instance
{
get
{
return instance;
}
}
public static void AddItem(string item)
{
ArrayDemo.Add(item);
}
public static ArrayList GetItems()
{
return ArrayDemo;
}
}
//in cshtml:
Singleton.AddItem("first");
Singleton.AddItem("second");
Singleton.GetItems();
Web サイトを 1 回更新すると、php と同じ結果が得られます...しかし、3 回更新すると返されます..:
0=>first,1=>second,2=>first,3=>second,4=>first,5=>second
なぜこれが起こるのですか?静的メソッドを使用した場合、更新で ArrayList の結果をクリアできますか? これの論理を理解したいだけです。
みんなありがとう!。