RT¡£ÏÈÌù´úÂë
C# code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Value_Ref_test1
{
class Program
{
static void Main(string[] args)
{
point a = new point (10,10) ;
point b = a;
a.x = 20;
Console.WriteLine(a.x);
Console.WriteLine(b.x);
}
}
public class point
{
public int x;
public int y;
public point(int Xvalue,int Yvalue)
{
this.x = Xvalue;
this.y = Yvalue;
}
}
}
ÕâÑùµÄ»°×îºó»áÊä³ö
20
20
ÒòΪa£¬bÁ½¸ö±äÁ¿ÒýÏòÁËͬһ¸ö¶ÑÄÚ´æÉϵĶÔÏó¡£
µ«ÊÇͬÑùstringÒ²ÊÇÒýÓÃÀàÐÍ¡£
C# code
string a ="123";
string b = a;
b = "321";
ÔÙÊä³öµÄ»°¾ÍÊÇb£¬a¾ÍÊÇ321,123¡£
¿¼ÂÇ¿ÉÄÜÊÇÓÉÓÚstringÔÚ±àÒëʱ±»ÄÚÖã¬ÓÚÊÇÓÖÊÔÁËһϷÇÄÚÖõÄstring£¨¸Ð¾õÕâÑùдstring²»»á±»ÄÚÖᣣ©
C# code
Random a = new Random();
string b = a.Next().ToString();
......
ÏÈÌù´úÂë
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Ref_and_Out_test
{
class Program
{
static void Main(string[] args)
{
int a =0; //Èô²»³õʼ»¯b»á²úÉú±àÒëʱ´íÎó¡£Ê¹ÓÃδ³õʼ»¯±äÁ¿
int b = 1; //¼´Ê¹²»³õʼ»¯bҲûÓÐÎÊÌ⣻
RefAndOut(ref a,out b);
Console.WriteLine("after RefAndOut method process");
Console.WriteLine("a={0},b={1}", a, b);
}
& ......
ÕâÁ½¸öÔÚÒ»°ãÇé¿öÏÂÊÇÏàµÈµÄ£¬µ«ÊÇϵͳ´¦Àí»úÖÆÉÏÈ´ÓÐËù²»Í¬¡£
""»áÔÚÄÚ´æÀï»®Ò»¿é³¤¶ÈΪ0µÄ´æ´¢¿Õ¼ä£¬¶øString.EmptyÄÚ´æ²¢²»ÎªËü·ÖÅä¿Õ¼ä£¬ËùÒÔÎÞÂÛÐÔÄÜ»¹ÊÇËÙ¶ÈÉÏString.Empty¶¼ÓÅÓÚ""¡£
Ôø¾¿´¹ýһƪÅжÏ×Ö·û´®¿ÕÖµµÄÐÔÄÜÎÄÕ£¬ÀÏÍâдµÄ¹úÈË·Ò룬ÎÄÕ´óÒâÈçÏ£º
¶ÔÓÚÒ»¸östringÀàÐ͵ıäÁ¿a£¬Äã»áÓÃÄÄÖÖ·½Ê½ÅжÏËüΪ¿Õ£¬Ò»°ãÓÐÒÔÏÂÈýÖÖ£º
a == ""
a == String.Empty
a.length == 0
ÄÇô£¬Äã»áÓÃÄÄÖÖ·½Ê½Åжϣ¿ÀÏÍâÎÄÕÂÖÐÖ¸³öЧÂÊÉÏ 3 > 2 > 1£¬Ò²¾ÍÊÇa.length == 0 > a == String.Empty > a == ""¡£
ÄÇô£¬½áÂÛÊÇ£¬¸³¿Õ×Ö·û´®ÇëÓÃString.Empty£¨NULL²»ÄÜÊä³ö£¬Empty¿ÉÒÔÊä³ö£©£¬ÅжϿÕ×Ö·û´®ÇëÓÃlength¡£ ......
//»ñµÃºº×ÖµÄÇøλÂë
¡¡¡¡byte[] array = new byte[2];
¡¡¡¡array = System.Text.Encoding.Default.GetBytes("°¡");
int i1 = (short)(array[0] - ''\0'');
¡¡¡¡int i2 = (short)(array[1] - ''\0'');
//unicode½âÂ뷽ʽϵĺº×ÖÂë
¡¡¡¡array = System.Text.Encoding.Unicode.GetBytes("°¡");
¡¡¡¡i1 = (short)(array[0] - ''\0'');
¡¡¡¡i2 = (short)(array[1] - ''\0'');
//unicode·´½âÂëΪºº×Ö
¡¡¡¡string str = "4a55";
¡¡¡¡string s1 = str.Substring(0,2);
¡¡¡¡string s2 = str.Substring(2,2);
int t1 = Convert.ToInt32(s1,16);
¡¡¡¡int t2 = Convert.ToInt32(s2,16);
array[0] = (byte)t1;
¡¡¡¡array[1] = (byte)t2;
string s = System.Text.Encoding.Unicode.GetString(array);
//default·½Ê½·´½âÂëΪºº×Ö
¡¡¡¡array[0] = (byte)196;
¡¡¡¡array[1] = (byte)207;
¡¡¡¡s = System.Text.Encoding.Default.GetString(array);
//È¡×Ö·û´®³¤¶È
¡¡¡¡s = "iam·½Ç¹Ç¹";
¡¡¡¡int len = s.Length;//will output as 6
¡¡¡¡byte[] sarr = System.Text.Encoding.Default.GetBytes(s);
¡¡¡¡len = sarr.Length;//will output as 3+3*2=9
//×Ö·û´®Ïà¼Ó
¡¡ ......
//»ñµÃºº×ÖµÄÇøλÂë
¡¡¡¡byte[] array = new byte[2];
¡¡¡¡array = System.Text.Encoding.Default.GetBytes("°¡");
int i1 = (short)(array[0] - ''\0'');
¡¡¡¡int i2 = (short)(array[1] - ''\0'');
//unicode½âÂ뷽ʽϵĺº×ÖÂë
¡¡¡¡array = System.Text.Encoding.Unicode.GetBytes("°¡");
¡¡¡¡i1 = (short)(array[0] - ''\0'');
¡¡¡¡i2 = (short)(array[1] - ''\0'');
//unicode·´½âÂëΪºº×Ö
¡¡¡¡string str = "4a55";
¡¡¡¡string s1 = str.Substring(0,2);
¡¡¡¡string s2 = str.Substring(2,2);
int t1 = Convert.ToInt32(s1,16);
¡¡¡¡int t2 = Convert.ToInt32(s2,16);
array[0] = (byte)t1;
¡¡¡¡array[1] = (byte)t2;
string s = System.Text.Encoding.Unicode.GetString(array);
//default·½Ê½·´½âÂëΪºº×Ö
¡¡¡¡array[0] = (byte)196;
¡¡¡¡array[1] = (byte)207;
¡¡¡¡s = System.Text.Encoding.Default.GetString(array);
//È¡×Ö·û´®³¤¶È
¡¡¡¡s = "iam·½Ç¹Ç¹";
¡¡¡¡int len = s.Length;//will output as 6
¡¡¡¡byte[] sarr = System.Text.Encoding.Default.GetBytes(s);
¡¡¡¡len = sarr.Length;//will output as 3+3*2=9
//×Ö·û´®Ïà¼Ó
¡¡ ......
Õâ±¾Êé½²½â
C#
ÓïÑÔÊ®·ÖÏêϸ£¬ÎÒ½«ÆäÖеÄÖØÒªÄÚÈÝÕûÀí³ÉÌõ¿î£¬ÒÔ±¸Íü¡£
1.
ʼþÊÇÔÚÂú×ãij¸öÌض¨Ìõ¼þʱ·¢ÉúµÄ£¬´¥·¢
(raise)
ʼþµÄ¶ÔÏó³ÆΪ·¢²¼Õß
(publisher)
£¬¶ÔÕâ¸öʼþ½øÐÐÏìÓ¦µÄ¶ÔÏó³ÆΪ¶©ÔÄÕß
(subscriber)
¡£Ê¼þ´¦Àí³ÌÐòÊÇ×¢²áµ½Ê¼þµÄ·½·¨£¬¿ÉÔÚÈκÎÀà»òÕ߽ṹÖС£
2.
×Ô¶¨ÒåʼþµÄ²½Ö裺
1.
ίÍÐÉùÃ÷£ºÊ¼þºÍʼþµÄ´¦Àí³ÌÐò±ØÐëÓÐÏàͬµÄÇ©ÃûºÍ·µ»ØÀàÐÍ¡£¶¼Í¨¹ý¶ÔÓ¦µÄίÍÐÀàÐÍÀ´ÃèÊö¡£
2.
ʼþ´¦Àí³ÌÐòÉùÃ÷£ºÔÚʼþ±»´¥·¢ºóÖ´Ðеķ½·¨¡£
3.
ʼþÉùÃ÷£ºÔÚʼþ·¢²¼ÕßÀàÖÐÉùÃ÷±£´æ²¢µ÷ÓÃʼþ´¦Àí³ÌÐò¡£
4.
¶©ÔÄʼþ£º½«Ê¼þ´¦Àí³ÌÐòÓëʼþÁ¬½ÓÆðÀ´¡£
5.
±àд´¥·¢Ê¼þµÄ´úÂ룺ÔÚ·¢²¼ÕßÀàÖбàд´úÂë´¥·¢Ê¼þµ¼Ö¶©ÔÄ´ËʼþµÄʼþ´¦Àí³ÌÐò±»µ÷Óá£
3.
ÉùÃ÷ʼþʱÐèҪίÍеÄÃû×Ö£¬Ó﷨Ϊ£º
public event DelegateName EventName;
ʼþÓëίÍеÄÐÐΪʮ·ÖÏàËÆ£¬ÔÒòÊÇʼþÆäʵÊǶÔίÍеķâ×°£¬Ê¼þÖаüº¬Ò»¸ö˽ÓеÄίÍбäÁ¿£¬Ìṩ¶ÔËüµÄ˽ÓпØÖÆ£¬²¢¶ÔÍâ½çÌṩÁËÓÐÏ޵IJÙ×÷·½Ê½
£¬ÕâÑùÓû§´úÂë¾Í²»¿ÉÒÔ¶ÔÕâ¸öÎ ......
ÎÒÃÇÔÚ±à³ÌµÄʱ·Ö£¬ÓÐʱ»áÔËÓöàÏß³ÌÀ´½â¾öÎÊÌ⣬ÀýÈçÄãµÄ³ÌÐò¼±ÐèÔÚºǫ́ÀÏ°å´¦ÖÃÒ»´ó¶ÑÊý¾Ý£¬µ«»¹ÒªÊ©Óû§½çÃæ¾ÓÓڿɲÙ×÷״̬£»»òÐíÄãµÄ³ÌÐòؽÐè·ÃÎÊһЩÍⲿ×ÊԴϤÊý¾Ý¿â»òÍøÂç×ÊÁϵȡ£ÕâЩ¾°¿öÄ㶼¿ÉÒÔ´´ÉèÒ»¸öÍ·Ïß³ÌÈ¥´¦Öã¬È»Ôò£¬¶àÏ̲߳»¿ÉÄæתµØ»á´ø»ØÒ»¸öÎÊÌ⣬ÄËÊÇÏß³Ìͬ²½µÄÎÊÌâ¡£ÈçÆäÕâ¸öÎÊÌâ´¦ÖÃÔã¸â£¬ÎÒÃǾͻáʧȥһЩ·ÇÔ¤ÆڵĽá¹û¡£
¡¡¡¡ÔÚÍøÉÏÒ²¿´¹ýһЩÖÁÓÚÏß³Ìͬ²½µÄ¸å¼þ£¬ÊµÔòÏß³Ìͬ²½Óкü¸ÖÖ²½Ö裬ϲ¿ÎÒ¾ÍÈÝÒ×µÄ×öÒ»ÏÂ×Ó¹é½á¡£
¡¡¡¡1¡¢volatile¹Ø¼ü×Ö
¡¡¡¡volatileÊÇ×îÈÝÒ×µÄÒ»ÖÖͬ²½²½Ö裬µ±È»ÈÝÒ×ÊÇÒª¸¶³ö´ú¼ÛµÄ¡£ËüÖ»ºÃÔÚ±äÁ¿Ò»¼¶×öͬ²½£¬volatileµÄº¬ÒâÄËÊǸæËß΢´¦ÀíÆ÷£¬ ²»Óý«ÎÒ·ÅÈ빤×÷ÄÚ´æ´¢Æ÷£¬ ÇëÖ±½ÓÔÚÖ÷´æ²Ù×÷ÎÒ¡££¨¡¾×ª×Ôwww.bitsCN.com ¡¿£©Òò¶ø£¬Ó¦¶àÏß³ÌÓë´Ëͬʱ·ÃÎʸñäÁ¿Ê±£¬¶¼½«Ö±½Ó²Ù×÷Ö÷´æ£¬´Ó±¾ÖÊÉÏ×÷µ½Á˱äÁ¿¹²Ïí¡£
¡¡¡¡Äܹ»±»±êʶΪvolatileµÄÎñ±ØÊÇÒԴμ¸Àà±ðÐÍ£º£¨Õª×ÔMSDN£©
•Any reference type.
•Any pointer type (in an unsafe context).
•The types sbyte, byte, short, ushort, int, uint, char, float, bool.
•An enum type with an enum base type of byte, sbyte, short, ushort, ......