class Test
{
private static int m = 10;
private static double n = 20;
public Test()
{
}
}
如果使用é™æ€æž„é€ å‡½æ•°ï¼Œåˆ™åœ¨æž„é€ ç±»çš„ç¬¬ä¸€ä¸ªå®žä¾‹æˆ–å¼•ç”¨ç¬¬ä¸€ä¸ªå˜é‡æ—¶åˆå§‹åŒ–é™æ€å˜é‡ã€‚如果我ä¸ä½¿ç”¨é™æ€æž„é€ å‡½æ•°ï¼Œåˆ™ä½•æ—¶åˆå§‹åŒ–é™æ€å˜é‡ä»¥åŠæŒ‰ä»€ä¹ˆé¡ºåºã€‚
ç”案 0 :(得分:2)
C#è¯è¨€è§„范section 10.4.5.1说:
 Â如果类ä¸å˜åœ¨é™æ€æž„é€ å‡½æ•°ï¼Œåˆ™æ‰§è¡Œé™æ€å—段åˆå§‹å€¼è®¾å®šé¡¹   在执行之å‰ç«‹å³å‘生   那个é™æ€æž„é€ å‡½æ•°ã€‚é™¤æ¤ä»¥å¤–,   é™æ€å—段åˆå§‹å€¼è®¾å®šé¡¹æ˜¯   执行于   ä¾èµ–于实现的时间   第一次使用é™æ€åœº   那个ç。
å› æ¤ï¼Œå®ƒä¾èµ–于实现,但所有é™æ€å—段都ä¿è¯åœ¨ä½¿ç”¨å…¶ä¸ä¸€ä¸ªä¹‹å‰è¿›è¡Œåˆå§‹åŒ–。
ç”案 1 :(得分:1)
在C#4.0ä¸ï¼Œé™æ€å—段在没有é™æ€æž„é€ å‡½æ•°çš„æƒ…å†µä¸‹è¢«åˆå§‹åŒ–为尽å¯èƒ½å»¶è¿Ÿã€‚在以å‰çš„版本ä¸ï¼Œæˆ‘ä»¬æ— æ³•ç»™å‡ºå‡†ç¡®çš„åˆå§‹åŒ–时间。 Jon Skeet对æ¤æœ‰a great post。
ç”案 2 :(得分:-1)
åŒä¸€ä¸ªåœ°æ–¹ã€‚ 编译器为您å出é™æ€æž„é€ å‡½æ•°ã€‚è®¢å•æ˜¯ä¸€ä¸ªæˆå‘˜å®šä¹‰çš„。
å¦‚æžœä½ ä½¿ç”¨ Reflector æŸ¥çœ‹ç±»ï¼Œä½ å¯ä»¥çœ‹åˆ°é™æ€æž„é€ å‡½æ•°ï¼š
public class MyStaticClass
{
public static int MyInt = 10;
}
å˜ä¸ºï¼š
public class MyStaticClass
{
// Fields
public static int MyInt;
// Methods
static MyStaticClass();
public MyStaticClass();
}
用
static MyStaticClass()
{
MyInt = 10;
}