singleton design pattern c# interview questions