æè°è¿ç®ç¬¦éè½½ï¼å°±æ¯å¯¹å·²æçè¿ç®ç¬¦éæ°è¿è¡å®ä¹ï¼èµäºå
¶å¦ä¸ç§åè½ï¼ä»¥éåºä¸åçæ°æ®ç±»åã
èªå®ä¹ç±»çèµå¼è¿ç®ç¬¦éè½½å½æ°çä½ç¨ä¸å
ç½®èµå¼è¿ç®ç¬¦çä½ç¨ç±»ä¼¼ï¼ä½æ¯è¦è¦æ³¨æçæ¯ï¼å®ä¸æ·è´æé å½æ°ä¸ææå½æ°ä¸æ ·ï¼è¦æ³¨ææ·±æ·è´æµ
æ·è´çé®é¢ï¼å¨æ²¡ææ·±æ·è´æµ
æ·è´çæ
åµä¸ï¼å¦æ没ææå®é»è®¤çèµå¼è¿ç®ç¬¦éè½½å½æ°ï¼é£ä¹ç³»ç»å°ä¼èªå¨æä¾ä¸ä¸ªèµå¼è¿ç®ç¬¦éè½½å½æ°ã
ä¸é¢æ¯Vectorçå®ä¹ââ å
å«æåå段ãæé å½æ°åä¸ä¸ªToString()éåæ¹æ³ï¼ä»¥ä¾¿æ¥çVectorçå
容ï¼æåæ¯è¿ç®ç¬¦éè½½ï¼
namespace Wrox.ProCSharp.OOCSharp
{
struct Vector
{
public double x, y, z;
public Vector(double x, double y, double z)
{
this.x = x;
this.y = y;
this.z = z;
}
public Vector(Vector rhs)
{
x = rhs.x;
y = rhs.y;
z = rhs.z;
}
public override string ToString()
{
return "( " + x + " , " + y + " , " + z + " )";
}
è¿éæä¾äºä¸¤ä¸ªæé å½æ°ï¼éè¿ä¼ éæ¯ä¸ªå
ç´ çå¼ï¼æè
æä¾å¦ä¸ä¸ªå¤å¶å
¶å¼çVectorï¼æ¥æå®ç¢éçåå§å¼ã第äºä¸ªæé å½æ°å¸¦ä¸ä¸ªVectoråæ°ï¼é常称为å¤å¶æé å½æ°ï¼å 为å®ä»¬å
许éè¿å¤å¶å¦ä¸ä¸ªå®ä¾æ¥åå§åä¸ä¸ªç±»æç»æå®ä¾ã注æï¼ä¸ºäºç®åèµ·è§ï¼æå段设置为publicãä¹å¯ä»¥æå®ä»¬è®¾ç½®ä¸ºprivateï¼ç¼åç¸åºçå±æ§æ¥è®¿é®å®ä»¬ï¼è¿æ ·åä¸ä¼æ¹åè¿ä¸ªç¨åºçåè½ï¼åªæ¯ä»£ç ä¼å¤æä¸äºã
ä¸é¢æ¯Vectorç»æçæ趣é¨åââ 为+è¿ç®ç¬¦æä¾æ¯æçè¿ç®ç¬¦éè½½ï¼
public static Vector operator + (Vector lhs, Vector rhs)
{
Vector result = new Vector(lhs);
result.x += rhs.x;
result.y += rhs.y;
result.z += rhs.z;
return result;
}
}
}
è¿ç®ç¬¦éè½½ç声ææ¹å¼ä¸æ¹æ³ç声ææ¹å¼ç¸åï¼ä½operatorå
³é®ååè¯ç¼è¯å¨ï¼å®å®é
ä¸æ¯ä¸ä¸ªè¿ç®ç¬¦éè½½ï¼åé¢æ¯ç¸å
³è¿ç®ç¬¦ç符å·ï¼å¨æ¬ä¾ä¸å°±æ¯+ãè¿åç±»åæ¯å¨ä½¿ç¨è¿ä¸ªè¿ç®ç¬¦æ¶è·å¾çç±»åãå¨æ¬ä¾ä¸ï¼æ两个ç¢éå èµ·æ¥ä¼å¾å°å¦ä¸ä¸ªç¢éï¼æ以è¿åç±»åå°±æ¯Vectorã对äºè¿ä¸ª+è¿ç®ç¬¦éè½½ï¼è¿åç±»åä¸å
å«ç±»ä¸æ ·ï¼ä½è¿ç§æ
åµå¹¶ä¸æ¯å¿
éçã两个åæ°å°±æ¯è¦æä½ç对象ã对äºäºå
è¿ç®ç¬¦(带两个åæ°)ï¼å¦+åï¼è¿ç®ç¬¦ï¼ç¬¬ä¸ä¸ªåæ°æ¯æ¾å¨è¿ç®ç¬¦å·¦è¾¹çå¼ï¼ç¬¬äºä¸ªåæ°æ¯æ¾å¨è¿ç®ç¬¦å³è¾¹çå¼ã
C#è¦æ±ææçè¿ç®ç¬¦éè½½é½å£°æ为publicåstaticï¼è¿è¡¨ç¤ºå®ä»¬ä¸å®ä»¬çç±»æç»æç¸å
³èï¼èä¸æ¯ä¸å®ä¾ç¸å
³èï¼æ以è¿ç®ç¬¦éè½½ç代ç ä½ä¸è½è®¿é®ééæç±»æåï¼ä¹ä¸è½è®¿é®thisæ è¯ç¬¦ï¼è¿æ¯å¯ä»¥çï¼å 为åæ°æä¾äºè¿ç®ç¬¦æ§è¡ä»»å¡æéè¦ç¥éçæææ°æ®ã
åé¢ä»ç»äºå£°æè¿ç®ç¬¦+çè¯æ³ï¼ä¸é¢ççè¿ç®ç¬¦å
é¨çæ
åµï¼
{
Vector result = new Vector(lhs);
result.x += rhs.x;
result.y += rhs.y;
result.z += rhs.z;
return result;
}
è¿é¨å代ç ä¸å£°ææ¹æ³ç代ç æ¯å®å
¨ç¸åçï¼æ¾ç¶ï¼å®è¿åä¸ä¸ªç¢éï¼å
¶ä¸å
å«åé¢å®ä¹çlhsårhsçåï¼å³æxãyåzåå«ç¸å ã
ä¸é¢éè¦ç¼åä¸äºç®åç代ç ï¼æµè¯Vectorç»æï¼
static void Main()
{
Vector vect1, vect2, vect3;
vect1 = new Vector(3.0, 3.0, 1.0);
vect2 = new Vector(2.0,â4.0,â4.0);
vect3 = vect1 + vect2;
Console.WriteLine("vect1 = " + vect1.ToString());
Console.WriteLine("vect2 = " + vect2.ToString());
Console.WriteLine("vect3 = " + vect3.ToString());
}
æè¿äºä»£ç ä¿å为Vectors.csï¼ç¼è¯å¹¶è¿è¡å®ï¼ç»æå¦ä¸ï¼
Vectors
vect1 = ( 3 , 3 , 1 )
vect2 = ( 2 ,â4 ,â4 )
vect3 = ( 5 ,â1 ,â3 )
è¿ä¸ªæ¯c#çï¼å
¶å®å¤§é¨åé¢å对象è¯è¨çè¿ç®ç¬¦éè½½ææé½æ¯ä¸æ ·çã
温馨提示:答案为网友推荐,仅供参考