<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>مدونة عبد الكريم كنعان</title>
	<atom:link href="http://kanaan85.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://kanaan85.wordpress.com</link>
	<description>تتميز لغة الدوت نيت .NET بالعديد من مزايا السهولة والقوة التي تجعلها مطلب العديد من المبرمجين.</description>
	<lastBuildDate>Mon, 02 Mar 2009 08:28:10 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>ar</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='kanaan85.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/1a77fdf61bac38616ad239d7c7732407?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>مدونة عبد الكريم كنعان</title>
		<link>http://kanaan85.wordpress.com</link>
	</image>
			<item>
		<title>استخدام الأداة  .NET Reflector™</title>
		<link>http://kanaan85.wordpress.com/2009/03/02/using-reflector/</link>
		<comments>http://kanaan85.wordpress.com/2009/03/02/using-reflector/#comments</comments>
		<pubDate>Mon, 02 Mar 2009 04:18:31 +0000</pubDate>
		<dc:creator>عبد الكريم كنعان</dc:creator>
				<category><![CDATA[أدوات .NET]]></category>
		<category><![CDATA[.NET Tools]]></category>
		<category><![CDATA[Reflector]]></category>

		<guid isPermaLink="false">http://kanaan85.wordpress.com/?p=144</guid>
		<description><![CDATA[تعتبر أداة Reflector من الأدوات المشهورة والمشهورة جدا، هل تعلم أنه من خلال هذه الاداة سيكون بمقدورك وبمقدور غيرك إمكانية الحصول على كود أي تطبيق أو مكتبة تم بناؤها في .NET، في هذه المقالة سوف نتعرف على كيفة استخدامها وتحميلها<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kanaan85.wordpress.com&blog=2943185&post=144&subd=kanaan85&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p class="MsoNormal" style="margin:0 0 10pt;" dir="rtl"><span style="font-size:small;"><span style="font-family:&quot;" lang="AR-SY">تعتبر أداة </span><span style="font-family:Calibri;"><span dir="ltr" lang="EN-GB">Reflector</span></span><span style="font-family:&quot;" lang="AR-SY"> من الأدوات المشهورة والمشهورة جدا، هل تعلم أنه من خلال هذه الاداة سيكون بمقدورك وبمقدور غيرك إمكانية الحصول <img class="size-full wp-image-145      alignleft" title="reflector_large" src="http://kanaan85.files.wordpress.com/2009/03/reflector_large.gif?w=125&#038;h=120" alt="reflector_large" width="125" height="120" />على كود أي تطبيق أو مكتبة تم بناؤها في </span><span dir="ltr" lang="EN-GB"><span style="font-family:Calibri;">.NET</span></span><span style="font-family:&quot;" lang="AR-SY">، في هذه المقالة سوف نتعرف على كيفة استخدامها وتحميلها.</span></span></p>
<p class="MsoNormal" style="margin:0 0 10pt;" dir="rtl"><span style="font-size:small;"><span style="font-family:&quot;" lang="AR-SY">دعني أخبرك أنه ربما الآن أنه يدور في ذهنك أن </span><span dir="ltr" lang="EN-GB"><span style="font-family:Calibri;">.NET</span></span><span style="font-family:&quot;" lang="AR-SY"> ضعيفة, كلامك هذا خاطئ, فلكل تقنية محاسن ومساؤئ، يجب أن تعلم أن تقنية </span><span dir="ltr" lang="EN-GB"><span style="font-family:Calibri;">.NET</span></span><span style="font-family:&quot;" lang="AR-SY"> أحدثت ثورة في عالم البرمجيات، ومن إحدى خصائص قوتها أن التطبيق الذي يتم بناؤه في </span><span dir="ltr" lang="EN-GB"><span style="font-family:Calibri;">.NET</span></span><span style="font-family:&quot;" lang="AR-SY"> سيكون قابلا للعمل على أي منصة تشغيل (</span><span style="font-family:Calibri;"><span dir="ltr" lang="EN-GB">Windows, Linux, &#8230;</span></span><span style="font-family:&quot;" lang="AR-SY">)، كيف حصل ذلك؟؟</span></span></p>
<p class="MsoNormal" style="margin:0 0 10pt;" dir="rtl"> </p>
<p class="MsoNormal" style="margin:0 0 10pt;" dir="rtl"><span style="font-size:small;"><span style="font-family:&quot;" lang="AR-SY"><span id="more-144"></span></span></span></p>
<p class="MsoNormal" style="margin:0 0 10pt;" dir="rtl"><span style="font-size:small;"><span style="font-family:&quot;" lang="AR-SY">إن مهمة المترجم التقليدي في لغات البرمجة بشكل عام (مثل: </span><span style="font-family:Calibri;"><span dir="ltr" lang="EN-GB">VB6, C++</span></span><span style="font-family:&quot;" lang="AR-SY">) هو تحويل كود لغة البرمجة إلى لغة الالة (</span><span style="font-family:Calibri;"><span dir="ltr" lang="EN-GB">Machine Code</span></span><span style="font-family:&quot;" lang="AR-SY">) أي عبارة عن سلسلة من الواحدات والأصفار، ولكن هذا غير صحيح مع </span><span dir="ltr" lang="EN-GB"><span style="font-family:Calibri;">.NET</span></span><span style="font-family:&quot;" lang="AR-SY"> إذ أن </span><span dir="ltr" lang="EN-GB"><span style="font-family:Calibri;">.NET</span></span><span style="font-family:&quot;" lang="AR-SY"> تقوم بتحويل التطبيقات المكتوبة إلى لغة تدعى </span><span style="font-family:Calibri;"><span dir="ltr" lang="EN-GB">MSIL</span></span><span style="font-family:&quot;" lang="AR-SY"> وهي إختصار </span><span style="font-family:Calibri;"><span dir="ltr" lang="EN-GB">Microsoft Intermediate Language</span></span><span style="font-family:&quot;" lang="AR-SY">(لغة تشبه </span><span style="font-family:Calibri;"><span dir="ltr" lang="EN-GB">Assembly</span></span><span style="font-family:&quot;" lang="AR-SY">)، وعند تنفيذ (</span><span style="font-family:Calibri;"><span dir="ltr" lang="EN-GB">Execute</span></span><span style="font-family:&quot;" lang="AR-SY">) البرنامج تبدأ مرحلة أخرى وهي تحويل </span><span style="font-family:Calibri;"><span dir="ltr" lang="EN-GB">MSIL</span></span><span style="font-family:&quot;" lang="AR-SY"> إلى لغة آلة يتناسب مع نظام التشغيل الذي تعمل عليه، فإذا كان النظام </span><span style="font-family:Calibri;"><span dir="ltr" lang="EN-GB">Windows</span></span><span style="font-family:&quot;" lang="AR-SY"> فسيتم توليد كود يتوافق مع </span><span style="font-family:Calibri;"><span dir="ltr" lang="EN-GB">Windows</span></span><span style="font-family:&quot;" lang="AR-SY">, أما إذا كان النظام </span><span style="font-family:Calibri;"><span dir="ltr" lang="EN-GB">Linux</span></span><span style="font-family:&quot;" lang="AR-SY"> فسيتم توليد كود آلة يتوافق مع </span><span style="font-family:Calibri;"><span dir="ltr" lang="EN-GB">Linux</span></span><span style="font-family:&quot;" lang="AR-SY">, وهكذا&#8230;</span></span></p>
<p class="MsoNormal" style="margin:0 0 10pt;" dir="rtl"><span style="font-size:small;"><span style="font-family:&quot;" lang="AR-SY">في الحقيقة إن هذه الخاصية أعطت </span><span dir="ltr" lang="EN-GB"><span style="font-family:Calibri;">.NET</span></span><span style="font-family:&quot;" lang="AR-SY"> ميزة وسيئة في نفس الوقت، الميزة هي استقلالية التطبيق عن نظام التشغيل كما بينا ذلك سابقا، أما السيئة فهي سهولة إرجاع كود </span><span style="font-family:Calibri;"><span dir="ltr" lang="EN-GB">MSIL</span></span><span style="font-family:&quot;" lang="AR-SY"> إلى أصله <span> </span></span><span style="font-family:Calibri;"><span dir="ltr" lang="EN-GB">Source Code</span></span><span style="font-family:&quot;" lang="AR-SY">، ويعتبر </span><span style="font-family:Calibri;"><span dir="ltr" lang="EN-GB">Reflector</span></span><span style="font-family:&quot;" lang="AR-SY"> أحد هذه الادوات التي تسهل عليك هذه العملية</span><span dir="ltr" lang="EN-GB"><span style="font-family:Calibri;">.</span></span></span></p>
<p> </p>
<p class="MsoNormal" style="margin:0 0 10pt;" dir="rtl"><span style="font-size:small;"><span style="font-family:&quot;" lang="AR-SY">من خلال هذا الرابط يمكنك الحصول على شرح عن هذه الاداة: </span><span lang="EN-GB"><a href="http://www.red-gate.com/products/reflector/"><span dir="ltr">http://www.red-gate.com/products/reflector</span><span style="font-family:&quot;" lang="AR-SY">/</span></a></span><span style="font-family:&quot;" lang="AR-SY"> ولتحميل هذه الاداة مباشرة: </span><span lang="EN-GB"><a href="http://reflector.red-gate.com/download.aspx"><span dir="ltr"><span style="color:#0000ff;">http://reflector.red-gate.com/download.aspx</span></span></a></span></span></p>
<p class="MsoNormal" style="margin:0 0 10pt;" dir="rtl"><span style="font-family:&quot;" lang="AR-SY"><span style="font-size:small;">هذه هي صورة الأداة: </span></span></p>
<p style="text-align:center;"><img class="size-full wp-image-145  aligncenter" title="Main Form Of Reflector" src="http://kanaan85.files.wordpress.com/2009/03/reflector1.jpg?w=521" alt="reflector 1" width="521" /></p>
<p class="MsoNormal" style="margin:0 0 10pt;" dir="rtl"><span style="font-size:small;"><span style="font-family:&quot;" lang="AR-SY">والان من قائمة </span><span style="font-family:Calibri;"><span dir="ltr" lang="EN-GB">File</span></span><span style="font-family:&quot;" lang="AR-SY"> ثم الامر </span><span style="font-family:Calibri;"><span dir="ltr" lang="EN-GB">Open</span></span><span style="font-family:&quot;" lang="EN-GB"> </span><span style="font-family:&quot;" lang="AR-SY">قم بإضافة أحد برامجك <span> </span>سواء كان </span><span style="font-family:Calibri;"><span dir="ltr" lang="EN-GB">exe</span></span><span style="font-family:&quot;" lang="AR-SY"> أو </span><span style="font-family:Calibri;"><span dir="ltr" lang="EN-GB">dll</span></span><span style="font-family:&quot;" lang="AR-SY">، لاحظ الصورة التالية: </span></span></p>
<p style="text-align:center;"><img class="size-full wp-image-145  aligncenter" title="reflector 2" src="http://kanaan85.files.wordpress.com/2009/03/reflector2.jpg?w=515" alt="Reflector 2" width="515" /></p>
<p class="MsoNormal" style="margin:0 0 10pt;" dir="rtl"><span style="font-size:small;"><span style="font-family:&quot;" lang="AR-SY">والان للحصول على الكود </span><span style="font-family:Calibri;"><span dir="ltr" lang="EN-GB">Source Code</span></span><span style="font-family:&quot;" lang="AR-SY"> مثلا للصف </span><span style="font-family:Calibri;"><span dir="ltr" lang="EN-GB">MyClass</span></span><span style="font-family:&quot;" lang="AR-SY"> في مثالي، قم<span>  </span>بالنقر عليه بزر الفأرة الأيمن لتظهر لك القائمة التالية:</span></span></p>
<p class="MsoNormal" style="margin:0 0 10pt;" dir="rtl"> </p>
<p class="MsoNormal" style="margin:0 0 10pt;" dir="rtl"> </p>
<p style="text-align:center;"><img class="size-full wp-image-145  aligncenter" title="reflector_large" src="http://kanaan85.files.wordpress.com/2009/03/reflector3.jpg?w=510" alt="Reflector 3" width="510" /></p>
<p> </p>
<p class="MsoNormal" style="margin:0 0 10pt;" dir="rtl"><span style="font-size:small;"><span style="font-family:&quot;" lang="AR-SY">وعند إختيار الأمر </span><span style="font-family:Calibri;"><span dir="ltr" lang="EN-GB">Disaaemble</span></span><span style="font-family:&quot;" lang="AR-SY"> ستظهر لك نافذة </span><span style="font-family:Calibri;"><span dir="ltr" lang="EN-GB">Disassembler</span></span><span style="font-family:&quot;" lang="EN-GB"> </span><span style="font-family:&quot;" lang="AR-SY">المبينة في الشكل السابق وبالضغط على </span><span style="font-family:Calibri;"><span dir="ltr" lang="EN-GB">Expand Methods</span></span><span style="font-family:&quot;" lang="AR-SY"> في نافذة </span><span style="font-family:Calibri;"><span dir="ltr" lang="EN-GB">Disassembler</span></span><span style="font-family:&quot;" lang="AR-SY"> الموضحة بالرسم التوضيحي السابق، لتكون عزيزي المبرمج قد حصلت على </span><span style="font-family:Calibri;"><span dir="ltr" lang="EN-GB">Source Code</span></span><span style="font-family:&quot;" lang="AR-SY"> لبرنامجي !! لاحظ الشكل التالي:</span></span></p>
<p class="MsoNormal" style="margin:0 0 10pt;" dir="rtl"> </p>
<p style="text-align:center;"><img class="size-full wp-image-145  aligncenter" title="reflector_large" src="http://kanaan85.files.wordpress.com/2009/03/reflector4.jpg?w=510" alt="Reflector 4" width="510" /></p>
<p class="MsoNormal" style="margin:0 0 10pt;" dir="rtl"><span style="font-size:small;"><span style="font-family:&quot;" lang="AR-SY">ولكن إذا كنت من مبرمجي </span><span style="font-family:Calibri;"><span dir="ltr" lang="EN-GB">VB.NET</span></span><span style="font-family:&quot;" lang="AR-SY"> فاعلم أنه بمقدروك الحصول على برنامجي بالغتك المفضلة وذلك من خلال القائمة الموجودة في أعلى البرنامج لاحظ الصورة التالية:</span></span></p>
<p class="MsoNormal" style="margin:0 0 10pt;" dir="rtl"> </p>
<p style="text-align:center;"><img class="size-full wp-image-145  aligncenter" title="reflector_large" src="http://kanaan85.files.wordpress.com/2009/03/reflector5.jpg?w=510" alt="Reflector 5" width="510" /></p>
<p style="text-align:right;"> </p>
<p class="MsoNormal" style="margin:0 0 10pt;" dir="rtl"><span style="font-size:small;"><span style="font-family:&quot;" lang="AR-SY">وهناك العديد من اللغات الاخرى ومن أهمها </span><span style="font-family:Calibri;"><span dir="ltr" lang="EN-GB">IL</span></span><span style="font-family:&quot;" lang="AR-SY"> هو </span><span style="font-family:Calibri;"><span dir="ltr" lang="EN-GB">MSIL</span></span><span style="font-family:&quot;" lang="AR-SY"> التي تكلمنا عنه سابقا، لاحظ الشكل التالي:</span></span></p>
<p style="text-align:center;"><img class="size-full wp-image-145  aligncenter" title="reflector_large" src="http://kanaan85.files.wordpress.com/2009/03/reflector6.jpg?w=510" alt="Reflector 6" width="510" /></p>
<p> </p>
<p class="MsoNormal" style="margin:0 0 10pt;" dir="rtl"><span style="font-size:small;"><span style="font-family:&quot;" lang="AR-SY">بل أكثر من ذلك إذ يمكنك الحصول على برنامجي </span><span style="font-family:Calibri;"><span dir="ltr" lang="EN-GB">MyApplication</span></span><span style="font-family:&quot;" lang="AR-SY"> كاملا كما لو أن </span><span style="font-family:Calibri;"><span dir="ltr" lang="EN-GB">Source Code </span></span><span style="font-family:&quot;" lang="AR-SY"><span> </span>هو عندك وذلك بالنقر بزر الفأرة الايمن وإختيار الأمر </span><span style="font-family:Calibri;"><span dir="ltr" lang="EN-GB">Export&#8230;</span></span><span style="font-family:&quot;" lang="AR-SY"> لاحظ الشكل التالي:</span></span></p>
<p style="text-align:center;"><img class="size-full wp-image-145  aligncenter" title="reflector_large" src="http://kanaan85.files.wordpress.com/2009/03/reflector7.jpg?w=510" alt="Reflector 7" width="510" /></p>
<p><img class="size-full wp-image-145  aligncenter" title="reflector_large" src="http://kanaan85.files.wordpress.com/2009/03/reflector8.jpg?w=510" alt="Reflector 8" width="510" /></p>
<p class="MsoNormal" style="margin:0 0 10pt;" dir="rtl"> </p>
<p class="MsoNormal" style="margin:0 0 10pt;" dir="rtl"><span style="font-size:small;"><span style="font-family:&quot;" lang="AR-SY">كما يمكنك تحميل العديد من الاضافات للبرنامج </span><span style="font-family:Calibri;"><span dir="ltr">Add-Ins </span></span><span style="font-family:&quot;" lang="AR-SY"><span> </span>من خلال الرابط التالي: </span><span style="font-family:Calibri;"><span dir="ltr">http://www.codeplex.com/reflectoraddins</span></span></span></p>
<p class="MsoNormal" style="margin:0 0 10pt;" dir="rtl"> </p>
<p class="MsoNormal" style="margin:0 0 10pt;" dir="rtl"><span style="font-size:small;"><span style="font-family:&quot;" lang="AR-SY">ربما تتسائل ألا من حل لهذه المشكلة سأخبرك أنه يمكنك حل هذه المشكلة وذلك باستخدام أداة أخرى تدعى </span><span dir="ltr"><span style="font-family:Calibri;">{</span></span><span style="font-family:Calibri;"><span dir="ltr" lang="EN-GB">smartassembly</span><span dir="ltr">}</span></span></span></p>
<p class="MsoNormal" style="margin:0 0 10pt;" dir="rtl"> </p>
<p><span style="font-size:small;"><span style="font-family:&quot;" lang="AR-SY"><span> </span>وهذا إن شاء الله سيكون أحد موضوعاتنا المقبلة</span><span dir="ltr" lang="EN-GB"><span style="font-family:Calibri;">.</span></span></span></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/kanaan85.wordpress.com/144/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/kanaan85.wordpress.com/144/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/kanaan85.wordpress.com/144/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/kanaan85.wordpress.com/144/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/kanaan85.wordpress.com/144/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/kanaan85.wordpress.com/144/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/kanaan85.wordpress.com/144/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/kanaan85.wordpress.com/144/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/kanaan85.wordpress.com/144/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/kanaan85.wordpress.com/144/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kanaan85.wordpress.com&blog=2943185&post=144&subd=kanaan85&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://kanaan85.wordpress.com/2009/03/02/using-reflector/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fc9fb0a128c9a23601091f1e32f664ec?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">كنعان</media:title>
		</media:content>

		<media:content url="http://kanaan85.files.wordpress.com/2009/03/reflector_large.gif" medium="image">
			<media:title type="html">reflector_large</media:title>
		</media:content>

		<media:content url="http://kanaan85.files.wordpress.com/2009/03/reflector1.jpg" medium="image">
			<media:title type="html">Main Form Of Reflector</media:title>
		</media:content>

		<media:content url="http://kanaan85.files.wordpress.com/2009/03/reflector2.jpg" medium="image">
			<media:title type="html">reflector 2</media:title>
		</media:content>

		<media:content url="http://kanaan85.files.wordpress.com/2009/03/reflector3.jpg" medium="image">
			<media:title type="html">reflector_large</media:title>
		</media:content>

		<media:content url="http://kanaan85.files.wordpress.com/2009/03/reflector4.jpg" medium="image">
			<media:title type="html">reflector_large</media:title>
		</media:content>

		<media:content url="http://kanaan85.files.wordpress.com/2009/03/reflector5.jpg" medium="image">
			<media:title type="html">reflector_large</media:title>
		</media:content>

		<media:content url="http://kanaan85.files.wordpress.com/2009/03/reflector6.jpg" medium="image">
			<media:title type="html">reflector_large</media:title>
		</media:content>

		<media:content url="http://kanaan85.files.wordpress.com/2009/03/reflector7.jpg" medium="image">
			<media:title type="html">reflector_large</media:title>
		</media:content>

		<media:content url="http://kanaan85.files.wordpress.com/2009/03/reflector8.jpg" medium="image">
			<media:title type="html">reflector_large</media:title>
		</media:content>
	</item>
		<item>
		<title>الاتصال بالبيانات من نوع NULL عن طريق تابع يدعى ISNULL()</title>
		<link>http://kanaan85.wordpress.com/2009/02/15/isnull/</link>
		<comments>http://kanaan85.wordpress.com/2009/02/15/isnull/#comments</comments>
		<pubDate>Sun, 15 Feb 2009 22:26:30 +0000</pubDate>
		<dc:creator>عبد الكريم كنعان</dc:creator>
				<category><![CDATA[Microsoft SQL Server]]></category>
		<category><![CDATA[ISNULL]]></category>
		<category><![CDATA[SQL Function]]></category>

		<guid isPermaLink="false">http://kanaan85.wordpress.com/?p=128</guid>
		<description><![CDATA[

لربما كنت واحدا من المبرمجين الذين كان لهم العديد من التجارب في غمار قواعد البيانات, وبالتالي ستكون الحالة NULL من الحالات المشهورة, دعنا في هذه المقالة نتعرف على أحد التوابع الذي يوفر لنا المرونه في التعامل مع حالة NULL
 

يوجد في الواقع العديد من التوابع الخاصة بالتعامل مع NULL، أحد هذه التوابع هو ISNULL().
التابع ISNULL() يقبل متحول Variable [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kanaan85.wordpress.com&blog=2943185&post=128&subd=kanaan85&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><div></div>
<p><span></p>
<p class="MsoNormal" style="line-height:14.25pt;margin:0 0 10pt;" dir="rtl"><span>لربما كنت واحدا من المبرمجين الذين كان لهم العديد من التجارب في غمار قواعد البيانات, وبالتالي ستكون الحالة NULL</span><span> من الحالات المشهورة, دعنا في هذه المقالة نتعرف على أحد التوابع الذي يوفر لنا المرونه في التعامل مع حالة NULL</span></p>
<p> </p>
<p></span></p>
<p class="MsoNormal" style="margin:0 0 10pt;" dir="rtl"><span>يوجد في الواقع العديد من التوابع الخاصة بالتعامل مع NULL، أحد هذه التوابع هو </span><span style="font-size:10pt;color:fuchsia;line-height:115%;font-family:&quot;" dir="ltr">ISNULL</span><span>().</span></p>
<p class="MsoNormal" style="margin:0 0 10pt;" dir="rtl"><span>التابع ISNULL</span><span>() يقبل متحول </span><span>Variable أو تعبير </span><span>Expression، ويقوم بعملية إختبار فيما إذا كانت القيمة هي </span><span>NULL، إذا كانت القيمة هي </span><span style="font-size:10pt;color:gray;line-height:115%;font-family:&quot;" dir="ltr">NULL</span><span>، فإن التابع سوف يعيد قيمة محددة بدلا من قيمة الـ </span><span>NULL، أما إذا كانت قيمة التعبير ليست </span><span>NULL، فإن التابع سوف يعيدها كقيمة إن شكل التابع هو كما يلي:</span></p>
<table class="MsoTableGrid" style="background:#f2f2f2;border-collapse:collapse;" border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td style="width:521.1pt;background-color:transparent;border:black 1pt solid;padding:0 5.4pt;" width="695" valign="top">
<p class="MsoNormal" style="direction:ltr;line-height:normal;unicode-bidi:embed;text-align:left;margin:0;"><span style="color:black;font-family:&quot;"><span style="font-size:small;">ISNULL <strong>(</strong> <em>check</em><strong>_</strong><em>expression </em><strong>,</strong> <em>replacement_value </em><strong>)</strong></span></span></p>
</td>
</tr>
</tbody>
</table>
<p><span id="more-128"></span></p>
<p class="MsoNormal" style="line-height:normal;text-align:right;margin:0;" dir="rtl"><span style="font-size:12pt;color:gray;font-family:&quot;" lang="AR-SY">على سبيل المثال:</span></p>
<p class="MsoNormal" style="line-height:normal;text-align:right;margin:0;" dir="rtl"><span style="font-size:14pt;color:black;font-family:&quot;" lang="AR-SY"> </span></p>
<table class="MsoTableLightShading" style="border-collapse:collapse;text-align:right;" dir="ltr" border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td style="border-right:#f0f0f0;border-top:black 1pt solid;border-left:#f0f0f0;width:402.3pt;border-bottom:black 1pt solid;background-color:transparent;padding:0 5.4pt;" width="536" valign="top">
<p class="MsoNormal" style="direction:ltr;line-height:normal;unicode-bidi:embed;text-align:left;margin:0;"><span style="font-size:9pt;color:black;font-family:&quot;">ISNULL Expression</span></p>
</td>
<td style="border-right:#f0f0f0;border-top:black 1pt solid;border-left:#f0f0f0;width:120.5pt;border-bottom:black 1pt solid;background-color:transparent;padding:0 5.4pt;" width="161" valign="top">
<p class="MsoNormal" style="direction:ltr;line-height:normal;unicode-bidi:embed;text-align:left;margin:0;"><span style="font-size:9pt;color:black;font-family:&quot;">Value Returned</span></p>
</td>
</tr>
<tr>
<td style="background:silver;width:402.3pt;border:#f0f0f0;padding:0 5.4pt;" width="536" valign="top">
<p class="MsoNormal" style="direction:ltr;line-height:normal;unicode-bidi:embed;text-align:left;margin:0;"><span style="font-family:Calibri;"><strong><span style="font-size:9pt;color:black;font-family:WileyCode-Regular;">ISNULL(NULL, 5)</span></strong></span></p>
</td>
<td style="background:silver;width:120.5pt;border:#f0f0f0;padding:0 5.4pt;" width="161" valign="top">
<p class="MsoNormal" style="direction:ltr;line-height:normal;unicode-bidi:embed;text-align:left;margin:0;"><span style="font-family:Calibri;"><span style="font-size:9pt;color:black;font-family:WileyCode-Regular;">5</span></span></p>
</td>
</tr>
<tr>
<td style="width:402.3pt;background-color:transparent;border:#f0f0f0;padding:0 5.4pt;" width="536" valign="top">
<p class="MsoNormal" style="direction:ltr;line-height:normal;unicode-bidi:embed;text-align:left;margin:0;"><strong><span style="font-size:9pt;color:black;font-family:WileyCode-Regular;"><span style="font-family:Calibri;">ISNULL(5, 15)</span></span></strong></p>
</td>
<td style="width:120.5pt;background-color:transparent;border:#f0f0f0;padding:0 5.4pt;" width="161" valign="top">
<p class="MsoNormal" style="direction:ltr;line-height:normal;unicode-bidi:embed;text-align:left;margin:0;"><span style="font-size:9pt;color:black;font-family:WileyCode-Regular;"><span style="font-family:Calibri;">5</span></span></p>
</td>
</tr>
<tr>
<td style="background:silver;width:402.3pt;border:#f0f0f0;padding:0 5.4pt;" width="536" valign="top">
<p class="MsoNormal" style="direction:ltr;line-height:normal;unicode-bidi:embed;text-align:left;margin:0;"><strong><span style="font-size:9pt;color:black;font-family:WileyCode-Regular;"><span style="font-family:Calibri;">ISNULL(MyColumnName, 0) where MyColumnName IS NULL</span></span></strong></p>
</td>
<td style="background:silver;width:120.5pt;border:#f0f0f0;padding:0 5.4pt;" width="161" valign="top">
<p class="MsoNormal" style="direction:ltr;line-height:normal;unicode-bidi:embed;text-align:left;margin:0;"><span style="font-size:9pt;color:black;font-family:WileyCode-Regular;"><span style="font-family:Calibri;">0</span></span></p>
</td>
</tr>
<tr>
<td style="width:402.3pt;background-color:transparent;border:#f0f0f0;padding:0 5.4pt;" width="536" valign="top">
<p class="MsoNormal" style="direction:ltr;line-height:normal;unicode-bidi:embed;text-align:left;margin:0;"><strong><span style="font-size:9pt;color:black;font-family:WileyCode-Regular;"><span style="font-family:Calibri;">ISNULL(MyColumnName, 0) where MyColumnName = 3</span></span></strong></p>
</td>
<td style="width:120.5pt;background-color:transparent;border:#f0f0f0;padding:0 5.4pt;" width="161" valign="top">
<p class="MsoNormal" style="direction:ltr;line-height:normal;unicode-bidi:embed;text-align:left;margin:0;"><span style="font-size:9pt;color:black;font-family:WileyCode-Regular;"><span style="font-family:Calibri;">3</span></span></p>
</td>
</tr>
<tr>
<td style="border-right:#f0f0f0;border-top:#f0f0f0;background:silver;border-left:#f0f0f0;width:402.3pt;border-bottom:black 1pt solid;padding:0 5.4pt;" width="536" valign="top">
<p class="MsoNormal" style="direction:ltr;line-height:normal;unicode-bidi:embed;text-align:left;margin:0;"><strong><span style="font-size:9pt;color:black;font-family:WileyCode-Regular;"><span style="font-family:Calibri;">ISNULL(MyColumnName, 0) where MyColumnName =</span></span></strong><strong><span style="font-size:9pt;color:black;font-family:&quot;">’</span></strong><strong><span style="font-size:9pt;color:black;font-family:WileyCode-Regular;"><span style="font-family:Calibri;">Fred Farmer</span></span></strong><strong><span style="font-size:9pt;color:black;font-family:&quot;">’</span></strong><strong></strong></p>
</td>
<td style="border-right:#f0f0f0;border-top:#f0f0f0;background:silver;border-left:#f0f0f0;width:120.5pt;border-bottom:black 1pt solid;padding:0 5.4pt;" width="161" valign="top">
<p class="MsoNormal" style="direction:ltr;line-height:normal;unicode-bidi:embed;text-align:left;margin:0;"><span style="font-family:Calibri;"><span style="font-size:9pt;color:black;font-family:WileyCode-Regular;">Fred Farmer</span></span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal" style="direction:ltr;line-height:normal;unicode-bidi:embed;text-align:right;margin:0;"><strong><span style="font-size:9pt;font-family:&quot;"> </span></strong></p>
<p class="MsoNormal" style="line-height:normal;text-align:right;margin:0;"><span style="font-size:12pt;color:gray;font-family:&quot;" lang="AR-SY">الان دعنا نرى استخدام التابع في الاستعلام:</span></p>
<p class="MsoNormal" style="direction:ltr;line-height:normal;unicode-bidi:embed;text-align:left;margin:0;"><strong><span style="font-size:12pt;font-family:&quot;" lang="EN-GB"> </span></strong></p>
<table class="MsoTableGrid" style="background:#f2f2f2;width:522.8pt;border-collapse:collapse;" border="1" cellspacing="0" cellpadding="0" width="697">
<tbody>
<tr>
<td style="width:522.8pt;background-color:transparent;border:black 1pt solid;padding:0 5.4pt;" width="697" valign="top">
<p class="MsoNormal" style="direction:ltr;line-height:normal;unicode-bidi:embed;text-align:left;margin:0;"><span style="font-size:10pt;color:blue;font-family:&quot;">                                              Select</span><span style="font-size:10pt;font-family:&quot;"> cu<span style="color:gray;">.</span>CompanyName<span style="color:gray;">,</span></span></p>
<p class="MsoNormal" style="direction:ltr;line-height:normal;unicode-bidi:embed;text-align:left;margin:0;"><span style="font-size:10pt;font-family:&quot;"><span>                                                    </span><span style="color:fuchsia;">IsNull</span><span style="color:gray;">(</span><span style="color:fuchsia;">Cast</span> <span style="color:gray;">((</span><span style="color:blue;">Select</span> <span style="color:fuchsia;">Min</span><span style="color:gray;">(</span>o<span style="color:gray;">.</span>OrderDate<span style="color:gray;">)</span></span></p>
<p class="MsoNormal" style="direction:ltr;line-height:normal;unicode-bidi:embed;text-align:left;margin:0;"><span style="font-size:10pt;font-family:&quot;"><span>                                                                </span><span style="color:blue;">From</span> Orders <span style="color:blue;">As</span> o</span></p>
<p class="MsoNormal" style="direction:ltr;line-height:normal;unicode-bidi:embed;text-align:left;margin:0;"><span style="font-size:10pt;font-family:&quot;"><span>                                                                </span><span style="color:blue;">Where</span> o<span style="color:gray;">.</span>CustomerID <span style="color:gray;">=</span> cu<span style="color:gray;">.</span>CustomerID<span style="color:gray;">)</span> <span style="color:blue;">As</span> <span style="color:blue;">varchar</span><span style="color:gray;">),</span> <span style="color:red;">&#8216; Never Ordered&#8217;</span><span style="color:gray;">)</span></span></p>
<p class="MsoNormal" style="direction:ltr;line-height:normal;unicode-bidi:embed;text-align:left;margin:0;"><span style="font-size:10pt;font-family:&quot;"><span>                                                                </span><span style="color:blue;">As</span> <span style="color:red;">&#8216;Order Date&#8217;</span></span></p>
<p class="MsoNormal" style="direction:ltr;line-height:normal;unicode-bidi:embed;text-align:left;margin:0;"><span style="font-size:10pt;color:blue;font-family:&quot;">                                              From</span><span style="font-size:10pt;font-family:&quot;"> Customers <span style="color:blue;">As</span> cu</span><strong></strong></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal" style="line-height:normal;margin:0;" dir="rtl"><strong><span style="font-size:12pt;font-family:&quot;" lang="AR-SY"> </span></strong></p>
<p class="MsoNormal" style="line-height:normal;margin:0;" dir="rtl"><span>هناك سطران بدون تعليمة </span><span style="font-size:10pt;color:fuchsia;font-family:&quot;" dir="ltr">ISNULL</span><span>() كانا سينتجان كما يلي:</span></p>
<p class="MsoNormal" style="direction:ltr;line-height:normal;unicode-bidi:embed;text-align:left;margin:0;"><strong><span style="font-size:12pt;font-family:&quot;" lang="EN-GB"> </span></strong></p>
<table class="MsoTableGrid" style="border-collapse:collapse;" border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td style="width:521.1pt;background-color:transparent;border:black 1pt solid;padding:0 5.4pt;" width="695" valign="top">
<p class="MsoNormal" style="direction:ltr;line-height:normal;unicode-bidi:embed;text-align:left;margin:0;"><span style="font-size:8.5pt;font-family:WileyCode-Regular;"><span style="font-family:Calibri;"><span>              </span>&#8230;</span></span></p>
<p class="MsoNormal" style="direction:ltr;line-height:normal;unicode-bidi:embed;text-align:left;margin:0;"><span style="font-size:8.5pt;font-family:WileyCode-Regular;"><span style="font-family:Calibri;"><span>              </span>FISSA Fabrica Inter. Salchichas S.A. <span>     </span>NULL</span></span></p>
<p class="MsoNormal" style="direction:ltr;line-height:normal;unicode-bidi:embed;text-align:left;margin:0;"><span style="font-size:8.5pt;font-family:WileyCode-Regular;"><span style="font-family:Calibri;"><span>              </span>&#8230;</span></span></p>
<p class="MsoNormal" style="direction:ltr;line-height:normal;unicode-bidi:embed;text-align:left;margin:0;"><span style="font-family:Calibri;"><span style="font-size:8.5pt;font-family:WileyCode-Regular;"><span>              </span>Paris sp</span><span style="font-size:8.5pt;">é</span><span style="font-size:8.5pt;font-family:WileyCode-Regular;">cialit</span><span style="font-size:8.5pt;">é</span><span style="font-size:8.5pt;font-family:WileyCode-Regular;">s </span><span style="font-size:8.5pt;" lang="EN-GB"><span>                                              </span></span><span style="font-size:8.5pt;font-family:WileyCode-Regular;">NULL</span></span></p>
<p class="MsoNormal" style="direction:ltr;line-height:normal;unicode-bidi:embed;text-align:left;margin:0;"><span style="font-family:Calibri;"><span style="font-size:8.5pt;font-family:WileyCode-Regular;"><span>             </span>&#8230;</span><strong></strong></span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal" style="line-height:normal;margin:0;" dir="rtl"><strong><span style="font-size:12pt;font-family:&quot;" lang="AR-SY"> </span></strong></p>
<p class="MsoNormal" style="line-height:normal;margin:0;" dir="rtl"><span style="font-size:12pt;color:gray;font-family:&quot;" lang="AR-SY">ولكن باستخدامه سينتجان كما يلي:</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;" dir="rtl"><strong><span style="font-size:12pt;font-family:&quot;" lang="AR-SY"> </span></strong></p>
<table class="MsoTableGrid" style="border-collapse:collapse;" border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td style="width:521.1pt;background-color:transparent;border:black 1pt solid;padding:0 5.4pt;" width="695" valign="top">
<p class="MsoNormal" style="direction:ltr;line-height:normal;unicode-bidi:embed;text-align:left;margin:0;"><span style="font-size:8.5pt;font-family:WileyCode-Regular;"><span style="font-family:Calibri;"><span>            </span>&#8230;</span></span></p>
<p class="MsoNormal" style="direction:ltr;line-height:normal;unicode-bidi:embed;text-align:left;margin:0;"><span style="font-size:8.5pt;font-family:WileyCode-Regular;"><span style="font-family:Calibri;"><span>           </span>FISSA Fabrica Inter. Salchichas S.A. <span>    </span>NEVER ORDERED</span></span></p>
<p class="MsoNormal" style="direction:ltr;line-height:normal;unicode-bidi:embed;text-align:left;margin:0;"><span style="font-size:8.5pt;font-family:WileyCode-Regular;"><span style="font-family:Calibri;"><span>           </span>&#8230;</span></span></p>
<p class="MsoNormal" style="direction:ltr;line-height:normal;unicode-bidi:embed;text-align:left;margin:0;"><span style="font-family:Calibri;"><span style="font-size:8.5pt;font-family:WileyCode-Regular;"><span>           </span>Paris sp</span><span style="font-size:8.5pt;">é</span><span style="font-size:8.5pt;font-family:WileyCode-Regular;">cialit</span><span style="font-size:8.5pt;">é</span><span style="font-size:8.5pt;font-family:WileyCode-Regular;">s <span>                                             </span>NEVER ORDERED</span></span></p>
<p class="MsoNormal" style="direction:ltr;line-height:normal;unicode-bidi:embed;text-align:left;margin:0;"><span style="font-family:Calibri;"><span style="font-size:8.5pt;font-family:WileyCode-Regular;"><span>          </span>&#8230;</span><strong></strong></span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal" style="line-height:normal;margin:0;" dir="rtl"><strong><span style="font-size:12pt;font-family:&quot;" lang="AR-SY"> </span></strong></p>
<p class="MsoNormal" style="line-height:normal;margin:0;" dir="rtl"><em><span style="font-size:12pt;color:gray;font-family:&quot;" lang="AR-SY">تم استخدام التابع </span><span style="font-size:10pt;color:fuchsia;font-family:&quot;" dir="ltr">CAST</span></em><em><span style="font-size:10pt;color:gray;font-family:&quot;" dir="ltr">()</span><span style="font-size:12pt;color:gray;font-family:&quot;" lang="AR-SY"> حتى يعمل هذا الاستعلام والسبب في ذلك لأن ناتج التنفيذ سينتج سيعطي بيانات من نوع تاريخ(</span><span style="font-size:10pt;color:gray;font-family:&quot;" dir="ltr" lang="EN-GB">DateTime</span><span style="font-size:12pt;color:gray;font-family:&quot;" lang="AR-SY">) طبعا للعمود </span><span style="font-size:10pt;color:gray;font-family:&quot;" dir="ltr" lang="EN-GB">Order</span><span style="font-size:12pt;color:gray;font-family:&quot;" dir="ltr" lang="EN-GB"> </span><span style="font-size:10pt;color:gray;font-family:&quot;" dir="ltr" lang="EN-GB">Date</span><span style="font-size:12pt;color:gray;font-family:&quot;" lang="AR-SY">، وبالتالي عندما يصل التنفيذ إلى أول </span><span style="font-size:10pt;color:gray;font-family:&quot;" dir="ltr" lang="EN-GB">NULL</span><span style="font-size:12pt;color:gray;font-family:&quot;" lang="EN-GB"> </span><span style="font-size:12pt;color:gray;font-family:&quot;" lang="AR-SY">سيتولد خطأ وذلك بسبب أن عبارة </span><span style="font-size:10pt;color:gray;font-family:&quot;" dir="ltr" lang="EN-GB">Never</span><span style="font-size:12pt;color:gray;font-family:&quot;" dir="ltr" lang="EN-GB"> </span><span style="font-size:10pt;color:gray;font-family:&quot;" dir="ltr" lang="EN-GB">Ordered</span><span style="font-size:12pt;color:gray;font-family:&quot;" lang="AR-SY"> لا يمكن تحويلها إلى تاريخ.</span></em></p>
<p class="MsoNormal" style="line-height:normal;margin:0;" dir="rtl"><span style="font-size:12pt;color:gray;font-family:&quot;" lang="AR-SY"> </span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;" dir="rtl"><span>الأمثلة مطبقة على قاعدة بيانات Northwind.</span></p>
<p class="MsoNormal" style="line-height:normal;margin:0;" dir="rtl"><span>أخذت هذه المقالة من كتاب Beginning SQL Server 2005.</span></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/kanaan85.wordpress.com/128/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/kanaan85.wordpress.com/128/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/kanaan85.wordpress.com/128/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/kanaan85.wordpress.com/128/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/kanaan85.wordpress.com/128/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/kanaan85.wordpress.com/128/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/kanaan85.wordpress.com/128/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/kanaan85.wordpress.com/128/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/kanaan85.wordpress.com/128/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/kanaan85.wordpress.com/128/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kanaan85.wordpress.com&blog=2943185&post=128&subd=kanaan85&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://kanaan85.wordpress.com/2009/02/15/isnull/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fc9fb0a128c9a23601091f1e32f664ec?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">كنعان</media:title>
		</media:content>
	</item>
		<item>
		<title>المعامل &#8216;??&#8217;</title>
		<link>http://kanaan85.wordpress.com/2009/01/23/operator/</link>
		<comments>http://kanaan85.wordpress.com/2009/01/23/operator/#comments</comments>
		<pubDate>Fri, 23 Jan 2009 11:30:14 +0000</pubDate>
		<dc:creator>عبد الكريم كنعان</dc:creator>
				<category><![CDATA[عام]]></category>

		<guid isPermaLink="false">http://kanaan85.wordpress.com/?p=123</guid>
		<description><![CDATA[سؤال يطرح نفسه ما هو المعامل ?? في الـ C# حتى نستطيع الاحابة عليه عزيزي المبرمج أرجوا أن تقرأ هذا الموضوع إلى النهاية.
إن المعامل ?? يعيد القيمة الموجودة إلى يساره في حال كانت قيمتها لا تساوي null، وإلا فإنه يعيد القيمة التي إلى يمينه. (شو هاد!!!)
دعنا نوضح ذلك بمثال:
int? x = null;
int y = x [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kanaan85.wordpress.com&blog=2943185&post=123&subd=kanaan85&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>سؤال يطرح نفسه ما هو المعامل <span style="color:#0000ff;">??</span> في الـ C# حتى نستطيع الاحابة عليه عزيزي المبرمج أرجوا أن تقرأ هذا الموضوع إلى النهاية.<br />
إن المعامل <span style="color:#0000ff;">??</span> يعيد القيمة الموجودة إلى يساره في حال كانت قيمتها لا تساوي null، وإلا فإنه يعيد القيمة التي إلى يمينه. (شو هاد!!!)<br />
دعنا نوضح ذلك بمثال:</p>
<p class="MsoNormal" style="direction:ltr;line-height:normal;unicode-bidi:embed;text-align:left;margin:0;" dir="ltr"><span style="font-size:10pt;color:blue;font-family:&quot;">int</span><span style="font-size:10pt;font-family:&quot;">? x = <span style="color:blue;">null</span>;</span></p>
<p class="MsoNormal" style="direction:ltr;unicode-bidi:embed;text-align:left;margin:0 0 10pt;" dir="ltr"><span style="font-size:10pt;color:blue;line-height:115%;font-family:&quot;">int</span><span style="font-size:10pt;line-height:115%;font-family:&quot;"> y = x ?? -1;</span><span></span></p>
<p style="text-align:right;"><span id="more-123"></span></p>
<p style="text-align:right;"> </p>
<p style="text-align:right;"> طبعا ربما يتسائل البعض نحن نعلم أنه يوجد نمط بيانات هو int ولكن ما هو int?<br />
الجواب: أنه في هذه الحالة عندما نعرف int? فإنه يمكن للمتحول أن يأخذ القيم قيم عددية ضمن مجال int بالإضافة إلى قيمة null.<br />
وهذا موضح من خلال المثال السابق عرفنا x من نوع int? واسندنا له قيمة null.<br />
ثم عرفنا متحول آخر هو y الذي سيأخذ قيمة x في حال أنها لا تساوي إلى null وإلا فإنها ستأخذ قيمة 1-.<br />
طبعا في مثالنا ستكون قيمتها 1-.</p>
<p>مثال آخر:
</p>
<p class="MsoNormal" style="direction:ltr;line-height:normal;unicode-bidi:embed;text-align:left;margin:0;" dir="ltr"><span style="font-size:10pt;color:blue;font-family:&quot;">string</span><span style="font-size:10pt;font-family:&quot;"> name = <span style="color:blue;">null</span>;</span></p>
<p class="MsoNormal" style="direction:ltr;unicode-bidi:embed;text-align:left;margin:0 0 10pt;" dir="ltr"><span style="font-size:10pt;color:blue;line-height:115%;font-family:&quot;">string</span><span style="font-size:10pt;line-height:115%;font-family:&quot;"> name1 = name ?? <span style="color:#a31515;">&#8220;Unknown&#8221;</span>;</span><span></span></p>
<p style="text-align:right;"> </p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/kanaan85.wordpress.com/123/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/kanaan85.wordpress.com/123/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/kanaan85.wordpress.com/123/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/kanaan85.wordpress.com/123/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/kanaan85.wordpress.com/123/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/kanaan85.wordpress.com/123/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/kanaan85.wordpress.com/123/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/kanaan85.wordpress.com/123/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/kanaan85.wordpress.com/123/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/kanaan85.wordpress.com/123/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kanaan85.wordpress.com&blog=2943185&post=123&subd=kanaan85&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://kanaan85.wordpress.com/2009/01/23/operator/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fc9fb0a128c9a23601091f1e32f664ec?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">كنعان</media:title>
		</media:content>
	</item>
		<item>
		<title>برنامج أنظمة العد Number Systems</title>
		<link>http://kanaan85.wordpress.com/2008/11/30/number-systems/</link>
		<comments>http://kanaan85.wordpress.com/2008/11/30/number-systems/#comments</comments>
		<pubDate>Sun, 30 Nov 2008 06:02:57 +0000</pubDate>
		<dc:creator>عبد الكريم كنعان</dc:creator>
				<category><![CDATA[برامجي]]></category>
		<category><![CDATA[Number Systems]]></category>

		<guid isPermaLink="false">http://kanaan85.wordpress.com/?p=108</guid>
		<description><![CDATA[
لقد تم بعونه تعالى إنشاء برنامج ليقوم بالتحويل من أي نظام من أنظمة العد إلى نظام آخر.
وإن أنظمة العد تبدأ من النظام الثنائي، الثلاثي&#8230;&#8230;&#8230;إلى النظام الست عشري.
وتعتمد فكرة البرنامج على نقطتين أساسيتين:

الأولى: هي التحويل من أي نظام من أنظمة العد إلى النظام العشري: وهو بطبيعته يعتمد على شقين وذلك للقسم الصحيح من العدد وللقسم الكسري [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kanaan85.wordpress.com&blog=2943185&post=108&subd=kanaan85&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p style="text-align:center;"><img class="size-full wp-image-109 aligncenter" title="logo" src="http://kanaan85.files.wordpress.com/2008/11/logo.jpg?w=509&#038;h=318" alt="أنظمة العد" width="509" height="318" /></p>
<p>لقد تم بعونه تعالى إنشاء برنامج ليقوم بالتحويل من أي نظام من أنظمة العد إلى نظام آخر.<br />
وإن أنظمة العد تبدأ من النظام الثنائي، الثلاثي&#8230;&#8230;&#8230;إلى النظام الست عشري.<br />
وتعتمد فكرة البرنامج على نقطتين أساسيتين:</p>
<p><span id="more-108"></span></p>
<p>الأولى: هي التحويل من أي نظام من أنظمة العد إلى النظام العشري: وهو بطبيعته يعتمد على شقين وذلك للقسم الصحيح من العدد وللقسم الكسري (ما بعد الفاصلة)<br />
1- بالنسبة للقسم الصيحيح: إذ يتم ترقيم منازل الأرقام للعدد بدءاً من الصفر (ومن اليمين إلى اليسار)  وبعد ذلك يتم ضرب كل رقم من منازل العدد بأساس النظام رافعا الأساس إلى منزلة الرقم المضروب به.</p>
<p>على سبيل المثال: الرقم الثنائي: 1011سيتم تحويله إلى النظام العشري</p>
<p><img class="size-full wp-image-110  alignright" title="NumberSystems 1" src="http://kanaan85.files.wordpress.com/2008/11/1.jpg?w=591&#038;h=162" alt="NumberSystems 1" width="591" height="162" /></p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p>وكذلك بالنسبة لأي عدد صحيح يراد تحويله إلى النظام العشري وذللك فقط بتبديل الأساس وقفا للنظام الذي تتعامل معه.</p>
<p>2- أما بالنسبة للقسم الكسري (ما بعد الفاصلة) : إذ يتم ترقيم المنازل <br />
    الأرقام بدءاً من -1 ،-2 &#8230;&#8230;. (ومن اليسار إلى اليمين) وبعد ذلك يتم<br />
    ضرب كل رقم من منازل العدد بأساس النظام رافعا الأساس إلى منزلة  <br />
    الرقم المضروب به.</p>
<p><img class="alignnone size-full wp-image-111" title="NumberSystems 2" src="http://kanaan85.files.wordpress.com/2008/11/2.jpg?w=612&#038;h=170" alt="NumberSystems 2" width="612" height="170" /></p>
<p>وبذلك يكون العدد الثنائي 1011.101 مساويا في النظام العشري 11.625<br />
 <br />
الثانية: هي التحويل من النظام العشري إلى باقي أنظمة العد ولها قسمان:<br />
1- القسم الصحيح:إذ يتم قسمة العدد على أساس النظام المراد التحويل إليه وبذلك ينتج: ناتج القسمة وباقي القسمة.<br />
أما ناتج القسمة فهو العدد العشري الجديد أما باقي القسمة فهو جزء من العدد العشري في النظام المراد التحويل إليه.<br />
وتستمر هذه العملية حتى يصبح ناتج القسمة مساوياً إلى الصفر.</p>
<p><img class="alignnone size-full wp-image-112" title="NumberSystems 3" src="http://kanaan85.files.wordpress.com/2008/11/3.jpg?w=562&#038;h=347" alt="NumberSystems 3" width="562" height="347" /></p>
<p> </p>
<p>وهكذا بالنسبة للتحويل لباقي أنظمة العد إذ يتم القسمة على أساس النظام المراد التحويل إليه.<br />
النظام الثنائي أساسه 2<br />
النظام النظام الثماني أساسه 8<br />
النظام الست عشري أساسه 16<br />
وتجدر الإشارة إلى أن أرقام النظام الثنائي هي إما 0 أو 1<br />
والنظام الثماني مجال أرقامه من 0 إلى 7<br />
والنظام العشري مجال أرقامه من 0 إلى 9<br />
والنظام الست عشري مجال أرقامه من 0 إلى 15</p>
<p> <img class="alignnone size-full wp-image-116" title="number-systems-7" src="http://kanaan85.files.wordpress.com/2008/11/number-systems-7.jpg?w=510&#038;h=88" alt="number-systems-7" width="510" height="88" /></p>
<p>وكل رقم يزيد عن الرقم عشرة في الأنظمة ما فوق النظام العشري يبدأ كتابة الرقم 10 بـ A إلى 15 بـ F وذلك لتميز العدد مثل العدد 13 هل هو 3 و1 أم هو الرقم الثالث عشر؟ تفاديا لهذه المشاكل فقد تم الترقيم على هذا النحو السابق.</p>
<p>2- القسم الكسري ( مابعد الفاصلة): يؤخذ العدد ويضرب بأساس النظام المراد التحويل إليه، وبذلك سينتج رقم كسري، الجزء الكسري منه فقط هو الذي سنتابع به عملية الجداء، أما الجزء الصحيح من العدد فهو جزء من العدد العشري في النظام الذي يُحول إليه.<br />
وتستمر هذه العملية حتى يصبح القسم الكسري مساويا إلى الصفر أو أن تصبح لدي عملية تكرار لمرحلة ما من مراحل الجداء عندها أتوقف عن العملية.</p>
<p><img class="alignnone size-full wp-image-113" title="NumberSystems 4" src="http://kanaan85.files.wordpress.com/2008/11/4.jpg?w=505&#038;h=310" alt="NumberSystems 4" width="505" height="310" /></p>
<p><img class="alignnone size-full wp-image-114" title="NumberSystems 5" src="http://kanaan85.files.wordpress.com/2008/11/5.jpg?w=488&#038;h=307" alt="NumberSystems 5" width="488" height="307" /></p>
<p> </p>
<p>وهكذا بالنسبة لباقي الأنظمة إذ نستبدل فقط العدد المضروب بالعدد المناسب وفقا لأساس النظام المراد التحويل إليه.</p>
<p>مثال إضافي:<br />
1- تحويل العدد الست عشري A3.BF إلى النظام العشري<br />
(A3.BF)16 = A * 161 + 3 * 160 + B * 16-1 + F * 16-2<br />
    = 10 * 16 + 3 + (11/16) + (15/256)<br />
                  = 163.7460937</p>
<p><img class="alignnone size-full wp-image-115" title="NumberSystems 6" src="http://kanaan85.files.wordpress.com/2008/11/6.jpg?w=436&#038;h=440" alt="NumberSystems 6" width="436" height="440" /></p>
<p> </p>
<p>أما العمليات الأربعة التي إعتمد عليها البرنامج هي تحويل أي عدد إلى النظام العشري ثم إجراء العملية المطلوبة عليه ثم إعادته إلى النظام الذي كان فيه.</p>
<p>ملف شرح البرنامج يمكنك تحميلة من الراربط التالي: <a href="http://kanaan85.files.wordpress.com/2008/11/d8a3d986d8b8d985d8a9-d8a7d984d8b9d8af.pdf">http://kanaan85.files.wordpress.com/2008/11/d8a3d986d8b8d985d8a9-d8a7d984d8b9d8af.pdf</a> </p>
<p><strong><span style="color:#888888;">تحميل ملف البرنامج:</span></strong> <a href="http://mihd.net/2es8dg">http://mihd.net/2es8dg</a></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/kanaan85.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/kanaan85.wordpress.com/108/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/kanaan85.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/kanaan85.wordpress.com/108/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/kanaan85.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/kanaan85.wordpress.com/108/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/kanaan85.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/kanaan85.wordpress.com/108/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/kanaan85.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/kanaan85.wordpress.com/108/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kanaan85.wordpress.com&blog=2943185&post=108&subd=kanaan85&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://kanaan85.wordpress.com/2008/11/30/number-systems/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fc9fb0a128c9a23601091f1e32f664ec?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">كنعان</media:title>
		</media:content>

		<media:content url="http://kanaan85.files.wordpress.com/2008/11/logo.jpg" medium="image">
			<media:title type="html">logo</media:title>
		</media:content>

		<media:content url="http://kanaan85.files.wordpress.com/2008/11/1.jpg" medium="image">
			<media:title type="html">NumberSystems 1</media:title>
		</media:content>

		<media:content url="http://kanaan85.files.wordpress.com/2008/11/2.jpg" medium="image">
			<media:title type="html">NumberSystems 2</media:title>
		</media:content>

		<media:content url="http://kanaan85.files.wordpress.com/2008/11/3.jpg" medium="image">
			<media:title type="html">NumberSystems 3</media:title>
		</media:content>

		<media:content url="http://kanaan85.files.wordpress.com/2008/11/number-systems-7.jpg" medium="image">
			<media:title type="html">number-systems-7</media:title>
		</media:content>

		<media:content url="http://kanaan85.files.wordpress.com/2008/11/4.jpg" medium="image">
			<media:title type="html">NumberSystems 4</media:title>
		</media:content>

		<media:content url="http://kanaan85.files.wordpress.com/2008/11/5.jpg" medium="image">
			<media:title type="html">NumberSystems 5</media:title>
		</media:content>

		<media:content url="http://kanaan85.files.wordpress.com/2008/11/6.jpg" medium="image">
			<media:title type="html">NumberSystems 6</media:title>
		</media:content>
	</item>
		<item>
		<title>برنامج العمليات على المصفوفات Operations On Array</title>
		<link>http://kanaan85.wordpress.com/2008/10/16/operations-on-array/</link>
		<comments>http://kanaan85.wordpress.com/2008/10/16/operations-on-array/#comments</comments>
		<pubDate>Thu, 16 Oct 2008 03:37:13 +0000</pubDate>
		<dc:creator>عبد الكريم كنعان</dc:creator>
				<category><![CDATA[برامجي]]></category>

		<guid isPermaLink="false">http://kanaan85.wordpress.com/?p=85</guid>
		<description><![CDATA[ 

برنامج العمليات على المصفوفات هو أحد برامجي القديمة على VB6، هو برنامج يختص بمجال الرياضيات تحديداً، حيث يقدم البرنامج المزايا التالية:


إيجاد مقلوب مصفوفة.


إيجاد المصفوفة القطرية.


إيجاد محدد مصفوفة.


العمليات الأربعة على المصفوفات.


حل جملة معادلات خطية (n معادلة بـ n مجهول).



بسم الله الرحمن الرحيم   




قد تم بعونه تعالى إنجاز برنامج يقوم بإجراء عمليات متعددة على المصفوفات
منها إيجاد مقلوب مصفوفة [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kanaan85.wordpress.com&blog=2943185&post=85&subd=kanaan85&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><div><a href="http://kanaan85.files.wordpress.com/2008/10/splash.jpg"></a> </div>
<p style="text-align:center;"><img class="size-full wp-image-86" title="splash" src="http://kanaan85.files.wordpress.com/2008/10/splash.jpg?w=505&#038;h=313" alt="Operations On Array" width="505" height="313" /></p>
<div><strong>برنامج العمليات على المصفوفات هو أحد برامجي القديمة على VB6، هو برنامج يختص بمجال الرياضيات تحديداً، حيث يقدم البرنامج المزايا التالية:</strong></div>
<ul>
<li>
<div><span style="color:#003399;"><strong>إيجاد مقلوب مصفوفة.</strong></span></div>
</li>
<li>
<div><span style="color:#003399;"><strong>إيجاد المصفوفة القطرية.</strong></span></div>
</li>
<li>
<div><span style="color:#003399;"><strong>إيجاد محدد مصفوفة.</strong></span></div>
</li>
<li>
<div><span style="color:#003399;"><strong>العمليات الأربعة على المصفوفات.</strong></span></div>
</li>
<li>
<div><span style="color:#003399;"><strong>حل جملة معادلات خطية (n معادلة بـ n مجهول).</strong></span></div>
</li>
</ul>
<p align="right"><span id="more-85"></span></p>
<div style="text-align:center;"><strong><span style="font-size:24pt;color:#e36c0a;line-height:115%;font-family:&quot;">بسم الله الرحمن الرحيم   </span></strong></p>
<div style="text-align:center;"><strong></strong></div>
<div style="text-align:center;"><strong></strong></div>
<div style="text-align:center;"><strong></strong></div>
<div style="text-align:right;"><strong></strong></div>
<div style="text-align:right;"><strong>قد تم بعونه تعالى إنجاز برنامج يقوم بإجراء عمليات متعددة على المصفوفات</strong><br />
<strong>منها إيجاد مقلوب مصفوفة والمصفوفة القطرية وقيمة محدد مصفوفة والعمليات الأربعة على المصفوفات (الجمع والطرح والضرب والقسمة) وأيضا حل جملة معادلات خطية.</strong><br />
<strong>أما الأفكار التي قام على أساسها البرنامج في مختلف عملياته سنورد ذكرها:</strong></div>
<div style="text-align:right;"><strong></strong></div>
<ol style="list-style-type:decimal;">
<li>
<div style="text-align:right;"><strong><span style="text-decoration:underline;">عملية الجمع والطرح:</span> حيث يتم جمع أو طرح عنصر لعنصر أي العنصر الأول من المصفوفة الأولى مع العنصر الأول من المصفوفة الثانية والعنصر الثاني مع الثاني وهكذا&#8230;<br />
فهناك إذا شرط وحيد لإجراء أي من عمليتي الجمع أو الطرح هو أن تكون أبعاد المصفوفتين متساوين (أي عدد أسطر المصفوفة الأولى يساوي عدد أسطر المصفوفة الثانية وعدد أعمدة المصفوفة الأولى يساوي عدد أعمدة المصفوفة الثانية).<br />
Result[m,n ]= A[m,n] (+-) B[m,n] </strong> <br />
.</div>
</li>
<li>
<div style="text-align:right;"><strong><span style="text-decoration:underline;">عملية الضرب:</span> تتم وذلك بجمع ناتج ضرب عناصر السطر الأول من المصفوفة الأولى مع عناصر العمود الأول من المصفوفة الثانية عنصر لعنصر على الترتيب (الأول مع الأول والثاني مع الثاني&#8230;..) وبهذا نكون قد حصلنا على العنصر الأول من المصفوفة الناتجة، ثم نأخذ السطر الأول من المصفوفة الأولى مع العمود الثاني من المصفوفة الثانية ونجري عليهما نفس العملية السابقة وبذلك نحصل على العنصر الثاني من السطر الأول من المصفوفة الناتجة وهكذا نكرر العملية إلى أن تنتهي أعمدة المصفوفة الثانية ثم نقوم بأخذ السطر الثاني من المصفوفة الأولى ونعيد الكرة ليتم ضربها مع كافة أعمدة المصفوفة الثانية ونكون قد حصلنا على السطر الثاني من المصفوفة الناتجة إلخ&#8230;&#8230;&#8230;<br />
ومنه فهناك شرط لإجراء عملية الجداء وهو أن يكون عدد أعمدة المصفوفة الأولى يساوي عدد أسطر المصفوفة الثانية.<br />
ملاحظة: نتيجة لما سبق فعملية جداء المصفوفات ليست بالضرورة أن تكون تبديلية.</strong></div>
<p> </li>
<li>
<div style="text-align:right;"><strong><span style="text-decoration:underline;">عملية القسمة:</span> حيث تعتمد على القانون التالي: A/B=A*B-1<br />
B-1: وهي مقلوب المصفوفة B، حيث سيتم التعرف على إيجاد مقلوب مصفوفة في المرحلة التالية.</strong></div>
<p> </li>
<li>
<div style="text-align:right;"><strong><span style="text-decoration:underline;">إيجاد مقلوب مصفوفة:</span> القانون [A|I]~[I|A-1]<br />
ملاحظة: لإجراء عملية القلب لمصفوفة يجب أن نتحقق من أمرين الأول أن تكون المصفوفة المراد إيجاد مقلوبها أن تكون مربعة أي متساوية في أبعادها –أي عدد الأسطر مساويا إلى عدد الأعمدة- والثاني أن لا يكون المحدد مساويا إلى الصفر وإلا دعيت مصفوفة شاذة لا يمكن إيجاد مقلوبها.<br />
أي نقوم بتوسيع المصفوفة A –المصفوفة المراد إيجاد المقلوب لها- بالمصفوفة الواحدية (وهي مصفوفة قطرها الرئيسي ذات قيمة وحيدة وهي الواحد وما عداها أصفار) ثم نسعى بعد ذلك لجعل المصفوفة المدخلة مصفوفة واحدية وذلك بإجراء العديد من العمليات مع الأخذ بعين الإعتبار بأن العمليات التي تجري على المصفوفة المدخلة تجرى أيضا على المصفوفة الواحدية وفي النهاية عندما نحصل على المصفوفة الواحدية من المصفوفة المدخلة A نكون بالمقابل المصفوفة الواحدية التي أنشأناها عند التوسيع قد أصبحت هي مقلوب المصفوفة A</strong></div>
<p> </li>
<li>
<div style="text-align:right;"><strong><span style="text-decoration:underline;">المصفوفة القطرية:</span> ونستفيد بأن إذا أردنا أن نجعل المصفوفة المدخلة مصفوفة ذات قيم قطرية فقط أي كل المصفوفة أصفار مع عدا قيم القطر الرئيسي.</strong></div>
<p> </li>
<li>
<div style="text-align:right;"><strong><span style="text-decoration:underline;">المحدد :</span> يمكن حسابها من خلال المصفوفة القطرية بكل سهولة إذ يكفي بعد الحصول على المصفوفة القطرية أن نضرب عناصر القطر الرئيسي فنحصل على قيمة محدد هذه المصفوفة.</strong></div>
<p> </li>
<li>
<div style="text-align:right;"><strong><span style="text-decoration:underline;">حل جملة معادلات خطية:</span> A*X=B<br />
القانون: [A|B]~[I|A-1*B]<br />
A: هي مصفوفة أمثال المجاهيل<br />
B:هي مصفوفة الثوابت (الطرف الثاني من المعادلة(<br />
X: هي مصفوفة ذات عمود واحد وهي مجاهيل هذه المعادلات.<br />
نلاحظ أيضا هنا نحن بحاجة إلى إجراء العمليات الحسابية على المصفوفة A للحصول على المصفوفة الواحدية) مع التذكرة أن العمليات تجرى أيضا على مصفوفة الثوابت (B.<br />
ملاحظة: أن العمليات السابقة لإيجاد مقلوب مصفوفة أو المصفوفة القطرية أو أي عملية تعتمد على التوسيع إذ أن العمليات الحسابية التي ستجريها هي فقط تتم على الأسطر ولا تعتمد على الأعمدة وتدعى هذه العمليات بالعمليات الأولية على المصفوفات.</strong></div>
</li>
</ol>
<p style="text-align:right;"><strong></strong></p>
<p><strong>يمكنك تحيل الشرح السابق على شكل ملف pdf من خلال الرابط التالي: <a href="http://kanaan85.files.wordpress.com/2008/10/d8a7d984d8b9d985d984d98ad8a7d8aa-d8b9d984d989-d8a7d984d985d8b5d981d988d981d8a7d8aa.pdf">العمليات على المصفوفات</a></strong></p>
<p>تاريخ إصدار البرنامج: 4-6-2005</p>
<div><strong><span style="font-family:Calibri;"><strong><span style="font-size:10pt;color:#e36c0a;line-height:115%;"><strong><span style="font-size:12pt;color:#e36c0a;line-height:115%;"><span style="text-decoration:underline;">يمكنك تحميل البرنامج من الرابط التالي:</span></span></strong><strong><span style="font-size:12pt;color:#000000;line-height:115%;"> </span></strong><strong><span style="font-size:12pt;color:#0000ff;line-height:115%;"> <span style="color:#000000;"><a href="http://ifile.it/y1tzw8i">http://ifile.it/y1tzw8i</a></span></span></strong><strong><span style="font-size:12pt;color:#000000;line-height:115%;font-family:&quot;"><a href="http://mihd.net/rvc1h6" target="_blank"></a></span></strong></span></strong></span></strong></div>
<p> </p>
<p style="text-align:center;"><strong><img class="size-full wp-image-92     aligncenter" title="01" src="http://kanaan85.files.wordpress.com/2008/10/01.jpg?w=510&#038;h=398" alt="" width="510" height="398" /></strong></p>
<p style="text-align:center;"><strong><br />
</strong>
</p>
<p style="text-align:center;"><strong><img class="size-full wp-image-91     aligncenter" title="02" src="http://kanaan85.files.wordpress.com/2008/10/02.jpg?w=510&#038;h=359" alt="" width="510" height="359" /></strong></p>
<p><strong></strong> </p>
<p> </p>
<p> </p></div>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/kanaan85.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/kanaan85.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/kanaan85.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/kanaan85.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/kanaan85.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/kanaan85.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/kanaan85.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/kanaan85.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/kanaan85.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/kanaan85.wordpress.com/85/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kanaan85.wordpress.com&blog=2943185&post=85&subd=kanaan85&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://kanaan85.wordpress.com/2008/10/16/operations-on-array/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fc9fb0a128c9a23601091f1e32f664ec?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">كنعان</media:title>
		</media:content>

		<media:content url="http://kanaan85.files.wordpress.com/2008/10/splash.jpg" medium="image">
			<media:title type="html">splash</media:title>
		</media:content>

		<media:content url="http://kanaan85.files.wordpress.com/2008/10/01.jpg" medium="image">
			<media:title type="html">01</media:title>
		</media:content>

		<media:content url="http://kanaan85.files.wordpress.com/2008/10/02.jpg" medium="image">
			<media:title type="html">02</media:title>
		</media:content>
	</item>
		<item>
		<title>طريقة للحصول على التاريخ دون الوقت من خلال الـ SQL !!</title>
		<link>http://kanaan85.wordpress.com/2008/10/15/getdataonly/</link>
		<comments>http://kanaan85.wordpress.com/2008/10/15/getdataonly/#comments</comments>
		<pubDate>Wed, 15 Oct 2008 20:43:12 +0000</pubDate>
		<dc:creator>عبد الكريم كنعان</dc:creator>
				<category><![CDATA[Microsoft SQL Server]]></category>
		<category><![CDATA[GetDate()]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[T-SQL]]></category>

		<guid isPermaLink="false">http://kanaan85.wordpress.com/?p=80</guid>
		<description><![CDATA[هذا التابع وظيفته هو الحصول على التاريخ فقط دون الوقت (قيمة الوقت أصفار 00:00:00)
يفيد هذا التابع في العديد من الحالات أهمها عندما أجري مقارنة بين تاريخين فقط حيث أن الوقت لا يهمني على الإطلاق، فإنه سيؤدي إلى الحصول على بعض النتائج الخاطئة، وذلك نتيجة لمقارنة الوقت معه.
فمثلا لو أن لدي جدول للمستعيرين، وأردت الحصول على [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kanaan85.wordpress.com&blog=2943185&post=80&subd=kanaan85&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p class="MsoNormal" style="text-align:right;"><span style="font-size:10pt;color:#7f7f7f;font-family:&quot;">هذا التابع وظيفته هو الحصول على التاريخ فقط دون الوقت (قيمة الوقت أصفار 00:00:00)</span></p>
<p class="MsoNormal" style="direction:rtl;line-height:normal;unicode-bidi:embed;text-align:right;margin:0;" dir="rtl"><span style="font-size:10pt;color:#7f7f7f;font-family:&quot;">يفيد هذا التابع في العديد من الحالات أهمها عندما أجري مقارنة بين تاريخين فقط حيث أن الوقت لا يهمني على الإطلاق، فإنه سيؤدي إلى الحصول على بعض النتائج الخاطئة، وذلك نتيجة لمقارنة الوقت معه.</span></p>
<p class="MsoNormal" style="direction:rtl;line-height:normal;unicode-bidi:embed;text-align:right;margin:0;" dir="rtl"><span style="font-size:10pt;color:#7f7f7f;font-family:&quot;">فمثلا لو أن لدي جدول للمستعيرين، وأردت الحصول على تقرير بأسماء جميع المستعيرين اللذين انتهت مدة اعارتهم ولنفرض أن التاريخ الكامل الآن من خلال التابع (الدالة) ()</span><span style="font-size:10pt;color:#7f7f7f;font-family:&quot;">GetDate </span><span style="font-size:10pt;color:#7f7f7f;font-family:&quot;">هي:</span></p>
<p class="MsoNormal" style="direction:rtl;line-height:normal;unicode-bidi:embed;text-align:right;margin:0;" dir="rtl"><span id="more-80"></span></p>
<div></div>
<p><span style="font-size:10pt;color:#7f7f7f;font-family:&quot;"></p>
<p class="MsoNormal" style="line-height:normal;text-align:left;margin:0;" dir="ltr"><span style="font-size:10pt;color:#0000ff;font-family:&quot;">Select</span><span style="font-size:10pt;font-family:&quot;"><span style="color:#000000;"> </span><span style="color:#ff00ff;">GetDate</span><span style="color:#808080;">();</span></span></p>
<p class="MsoNormal" style="text-align:right;"><span style="color:#808080;">ليكن الناتج:</span></p>
<p><font face="&quot;" color="#7f7f7f"></p>
<p class="MsoNormal" style="line-height:normal;text-align:left;margin:0;" dir="ltr"><span style="font-size:10pt;color:#808080;font-family:&quot;">2007-06-21 12:<span style="text-decoration:underline;">26</span>:24.807</span></p>
<p></font></span></p>
<p class="MsoNormal" style="line-height:normal;text-align:left;margin:0;" dir="ltr"> </p>
<p class="MsoNormal" style="direction:rtl;line-height:normal;unicode-bidi:embed;text-align:right;margin:0;" dir="rtl"><span style="font-size:10pt;color:#7f7f7f;font-family:&quot;">ولنفرض أن لدي مستعير مسجل في الجدول تنتهي فترة إعارته في:</span></p>
<p class="MsoNormal" style="text-align:left;" dir="ltr"><span style="font-size:10pt;color:#7f7f7f;font-family:&quot;">2007-06-21 12:<span style="text-decoration:underline;">35</span>:24.807</span></p>
<p class="MsoNormal" style="direction:rtl;line-height:normal;unicode-bidi:embed;text-align:right;margin:0;" dir="rtl"><span style="font-size:10pt;color:#7f7f7f;font-family:&quot;">لاحظ الفرق هو دقائق معدودة فقط فإن ناتج الاستعلام الناتج عند مقارنة حقل تاريخ انتهاء الإعارة مع التابع </span><span style="font-size:10pt;color:#7f7f7f;font-family:&quot;">GetDate()</span><span style="font-size:10pt;color:#7f7f7f;font-family:&quot;"> لن يظهر هذا المستعير (أعود و أذكر بأن الوقت لا يهمني وإنما يهمني فقط التاريخ)، فلحل هذه المشكلة تستخدم التابع التالي:</span></p>
<p class="MsoNormal" style="text-align:left;" dir="ltr"><span style="font-size:10pt;color:#7f7f7f;font-family:&quot;">GetDateOnly(DateTime @DateTime);</span></p>
<p class="MsoNormal" style="direction:rtl;line-height:normal;unicode-bidi:embed;text-align:right;margin:0;" dir="rtl"><span style="font-size:10pt;color:#7f7f7f;line-height:115%;font-family:&quot;">وهو على الشكل التالي:</span></p>
<div></div>
<p><span style="font-size:10pt;color:#7f7f7f;font-family:&quot;"></p>
<p class="MsoNormal" style="text-align:left;" dir="ltr"><span style="font-size:10pt;color:#0000ff;font-family:&quot;">set</span><span style="font-size:10pt;font-family:&quot;"><span style="color:#000000;"> </span><span style="color:#0000ff;">ANSI_NULLS</span><span style="color:#000000;"> </span><span style="color:#0000ff;">ON<br />
</span></span><span style="font-size:10pt;color:#0000ff;font-family:&quot;">set</span><span style="font-size:10pt;font-family:&quot;"><span style="color:#000000;"> </span><span style="color:#0000ff;">QUOTED_IDENTIFIER</span><span style="color:#000000;"> </span><span style="color:#0000ff;">ON<br />
</span></span><span style="font-size:10pt;font-family:&quot;"><span style="color:#000000;">go<br />
</span></span><span style="font-size:10pt;color:#008000;font-family:&quot;">&#8211; =============================================<br />
</span><span style="font-size:10pt;color:#008000;font-family:&quot;">&#8211; Author:<span>        </span>Abdulkarim Kanaan<br />
</span><span style="font-size:10pt;color:#008000;font-family:&quot;">&#8211; Create date: <span dir="rtl" lang="AR-SA"><span>  </span></span>4/6/2007<br />
</span><span style="font-size:10pt;color:#008000;font-family:&quot;">&#8211; Description:<span>   </span><span dir="rtl" lang="AR-SA">للحصول على التاريخ فقط دون الوقت<br />
</span></span><span style="font-size:10pt;color:#008000;font-family:&quot;">&#8211; =============================================<br />
</span><span style="font-size:10pt;color:#0000ff;font-family:&quot;">CREATE</span><span style="font-size:10pt;font-family:&quot;"><span style="color:#000000;"> </span><span style="color:#0000ff;">FUNCTION</span><span style="color:#000000;"> [dbo]</span><span style="color:#808080;">.</span><span style="color:#000000;">[GetDateOnly]<br />
</span></span><span style="font-size:10pt;color:#808080;font-family:&quot;">(<br />
</span><span style="font-size:10pt;font-family:&quot;"><span><span style="color:#000000;">      </span></span><span style="color:#008000;">&#8211; Add the parameters for the function here <br />
</span></span><span style="font-size:10pt;font-family:&quot;"><span style="color:#000000;"><span>      </span>@DateTime </span><span style="color:#0000ff;">DateTime<br />
</span></span><span style="font-size:10pt;color:#808080;font-family:&quot;">)<br />
</span><span style="font-size:10pt;color:#0000ff;font-family:&quot;">RETURNS</span><span style="font-size:10pt;font-family:&quot;"><span style="color:#000000;"> </span><span style="color:#0000ff;">smalldatetime<br />
</span></span><span style="font-size:10pt;color:#0000ff;font-family:&quot;">AS<br />
</span><span style="font-size:10pt;color:#0000ff;font-family:&quot;">BEGIN<br />
</span><span style="font-size:10pt;font-family:&quot;"><span><span style="color:#000000;">      </span></span><span style="color:#008000;">&#8211; Declare the return variable here<br />
</span></span><span style="font-size:10pt;font-family:&quot;"><span><span style="color:#000000;">      </span></span><span style="color:#0000ff;">DECLARE</span><span style="color:#000000;"> @Result </span><span style="color:#0000ff;">smalldatetime</span></span></p>
<p class="MsoNormal" style="line-height:normal;text-align:left;margin:0;" dir="ltr"><span style="font-size:10pt;font-family:&quot;"><span><span style="color:#000000;">      </span></span><span style="color:#0000ff;">Select</span><span style="color:#000000;"> @DateTime </span><span style="color:#808080;">=</span><span style="color:#000000;"> </span><span style="color:#ff00ff;">DateAdd</span><span style="color:#808080;">(</span><span style="color:#000000;">hh</span><span style="color:#808080;">,</span><span style="color:#000000;"> </span><span style="color:#808080;">-</span><span style="color:#ff00ff;">DatePart</span><span style="color:#808080;">(</span><span style="color:#000000;">hh</span><span style="color:#808080;">,</span><span style="color:#000000;"> @DateTime</span><span style="color:#808080;">),</span><span style="color:#000000;"> @DateTime</span><span style="color:#808080;">);<br />
</span></span><span style="font-size:10pt;font-family:&quot;"><span><span style="color:#000000;">      </span></span><span style="color:#0000ff;">Select</span><span style="color:#000000;"> @DateTime </span><span style="color:#808080;">=</span><span style="color:#000000;"> </span><span style="color:#ff00ff;">DateAdd</span><span style="color:#808080;">(</span><span style="color:#000000;">mi</span><span style="color:#808080;">,</span><span style="color:#000000;"> </span><span style="color:#808080;">-</span><span style="color:#ff00ff;">DatePart</span><span style="color:#808080;">(</span><span style="color:#000000;">mi</span><span style="color:#808080;">,</span><span style="color:#000000;"> @DateTime</span><span style="color:#808080;">),</span><span style="color:#000000;"> @DateTime</span><span style="color:#808080;">);<br />
</span></span><span style="font-size:10pt;font-family:&quot;"><span><span style="color:#000000;">      </span></span><span style="color:#0000ff;">Select</span><span style="color:#000000;"> @DateTime </span><span style="color:#808080;">=</span><span style="color:#000000;"> </span><span style="color:#ff00ff;">DateAdd</span><span style="color:#808080;">(</span><span style="color:#000000;">ss</span><span style="color:#808080;">,</span><span style="color:#000000;"> </span><span style="color:#808080;">-</span><span style="color:#ff00ff;">DatePart</span><span style="color:#808080;">(</span><span style="color:#000000;">ss</span><span style="color:#808080;">,</span><span style="color:#000000;"> @DateTime</span><span style="color:#808080;">),</span><span style="color:#000000;"> @DateTime</span><span style="color:#808080;">);<br />
</span></span><span style="font-size:10pt;font-family:&quot;"><span><span style="color:#000000;">      </span></span><span style="color:#0000ff;">Select</span><span style="color:#000000;"> @DateTime </span><span style="color:#808080;">=</span><span style="color:#000000;"> </span><span style="color:#ff00ff;">DateAdd</span><span style="color:#808080;">(</span><span style="color:#000000;">ms</span><span style="color:#808080;">,</span><span style="color:#000000;"> </span><span style="color:#808080;">-</span><span style="color:#ff00ff;">DatePart</span><span style="color:#808080;">(</span><span style="color:#000000;">ms</span><span style="color:#808080;">,</span><span style="color:#000000;"> @DateTime</span><span style="color:#808080;">),</span><span style="color:#000000;"> @DateTime</span><span style="color:#808080;">);</span></span></p>
<div></div>
<p><span style="color:#7f7f7f;font-family:&quot;"></p>
<p class="MsoNormal" style="line-height:normal;text-align:left;margin:0;" dir="ltr"><span style="font-size:10pt;font-family:&quot;"><span style="color:#000000;"><span>  </span></span></span><span style="font-size:10pt;font-family:&quot;"><span><span style="color:#000000;">    </span></span><span style="color:#008000;">&#8211; Add the T-SQL statements to compute the return value here<br />
</span></span></p>
<div class="MsoNormal" style="line-height:normal;text-align:left;margin:0;" dir="ltr"><span style="font-size:10pt;font-family:&quot;"><span><span style="color:#000000;">      </span></span><span style="color:#0000ff;">Select</span><span style="color:#000000;"> @Result </span><span style="color:#808080;">=</span><span style="color:#000000;"> @DateTime</span></span></div>
<p><span style="font-size:10pt;font-family:&quot;"><span style="color:#000000;"></p>
<p style="text-align:left;" dir="ltr"><span style="font-size:10pt;font-family:&quot;"><span><span style="color:#000000;">      </span></span><span style="color:#008000;">&#8211; Return the result of the function<br />
</span></span><span style="font-size:10pt;font-family:&quot;"><span><span style="color:#000000;">      </span></span><span style="color:#0000ff;">RETURN</span><span style="color:#000000;"> @Result</span></span><span style="font-size:10pt;font-family:&quot;"><span style="color:#000000;"> <br />
</span></span><span style="font-size:10pt;color:#0000ff;font-family:&quot;">END</span></p>
<p></span></span> </p>
<p></span> </p>
<p></span></p>
<p class="MsoNormal" style="line-height:normal;text-align:left;margin:0;" dir="ltr"> </p>
<p class="MsoNormal" style="direction:rtl;line-height:normal;unicode-bidi:embed;text-align:right;margin:0;" dir="rtl"><span style="font-size:10pt;color:#7f7f7f;font-family:&quot;">طبعا الفكرة بأنني قمت بإيجاد أجزاء الوقت (الساعة، الدقائق، الثواني، أجزاء الثواني) على الترتيب من التاريخ</span><span style="font-size:10pt;color:#7f7f7f;font-family:&quot;"> وطرحها منه.</span></p>
<p class="MsoNormal" style="direction:rtl;line-height:normal;unicode-bidi:embed;text-align:right;margin:0;" dir="rtl"> </p>
<p class="MsoNormal" style="direction:rtl;line-height:normal;unicode-bidi:embed;text-align:right;margin:0;" dir="rtl"> </p>
<p class="MsoNormal" style="direction:rtl;line-height:normal;unicode-bidi:embed;text-align:right;margin:0;" dir="rtl"> </p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/kanaan85.wordpress.com/80/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/kanaan85.wordpress.com/80/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/kanaan85.wordpress.com/80/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/kanaan85.wordpress.com/80/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/kanaan85.wordpress.com/80/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/kanaan85.wordpress.com/80/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/kanaan85.wordpress.com/80/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/kanaan85.wordpress.com/80/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/kanaan85.wordpress.com/80/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/kanaan85.wordpress.com/80/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kanaan85.wordpress.com&blog=2943185&post=80&subd=kanaan85&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://kanaan85.wordpress.com/2008/10/15/getdataonly/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fc9fb0a128c9a23601091f1e32f664ec?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">كنعان</media:title>
		</media:content>
	</item>
		<item>
		<title>تعرف إلى الصف Hashtable</title>
		<link>http://kanaan85.wordpress.com/2008/10/15/hashtable/</link>
		<comments>http://kanaan85.wordpress.com/2008/10/15/hashtable/#comments</comments>
		<pubDate>Wed, 15 Oct 2008 04:27:49 +0000</pubDate>
		<dc:creator>عبد الكريم كنعان</dc:creator>
				<category><![CDATA[عام]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Hashtable]]></category>

		<guid isPermaLink="false">http://kanaan85.wordpress.com/?p=69</guid>
		<description><![CDATA[يوجد ضمن فضاء الأسماء System.Collections صفوف القواميس التي تدل من اسمها أنها مثل القاموس تقوم بتخزين قيمة تسمى &#8220;مفتاح&#8221; وقيمة تسمى &#8220;قيمة المفتاح&#8221;، وبالتالي تكون الافادة في عملية البحث عن القيمة المقابلة لمفتاح ما، من هذه الصفوف الصف Hashtable الذي يمكن استخدامه كما يلي:
Hashtable emailLookup = new Hashtable();
emailLookup.Add(&#8220;Abdulkarim2006@hotmail.com&#8221;, &#8220;Kanaan, Abdulkarim&#8221;);
emailLookup["Abdulkarim.Kanaan@gmail.com"] = &#8220;Kanaan, Abdulkarim&#8221;;

طبعا كما لاحظنا [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kanaan85.wordpress.com&blog=2943185&post=69&subd=kanaan85&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>يوجد ضمن فضاء الأسماء System.Collections صفوف القواميس التي تدل من اسمها أنها مثل القاموس تقوم بتخزين قيمة تسمى &#8220;مفتاح&#8221; وقيمة تسمى &#8220;قيمة المفتاح&#8221;، وبالتالي تكون الافادة في عملية البحث عن القيمة المقابلة لمفتاح ما، من هذه الصفوف الصف Hashtable الذي يمكن استخدامه كما يلي:</p>
<p style="text-align:left;" dir="ltr">Hashtable emailLookup = new Hashtable();<br />
emailLookup.Add(&#8220;Abdulkarim2006@hotmail.com&#8221;, &#8220;Kanaan, Abdulkarim&#8221;);<br />
emailLookup["Abdulkarim.Kanaan@gmail.com"] = &#8220;Kanaan, Abdulkarim&#8221;;</p>
<p><span id="more-69"></span></p>
<p>طبعا كما لاحظنا هناك طريقتين لإدخال البيانات إما باستخدام التابع Add أو باستخدام الفهرسة طبعا ولكن يجدر القول إلى أن هذه الأخيرة ستكون عملية إضافة في حال أن المفتاح الذي تمت إضافته غير موجود أما في حال وجوده مسبقا فإنه سيؤدي إلى عملية تعديل، أي في حال الايميل <a href="mailto:Abdulkarim.Kanaan@gmail.com"><span style="color:#354e62;">Abdulkarim.Kanaan@gmail.com</span></a> موجود مسبقا فإن السطر:
</p>
<p style="text-align:left;" dir="ltr">emailLookup["Abdulkarim.Kanaan@gmail.com"] = &#8220;Kanaan, Abdulkarim&#8221;;</p>
<p style="text-align:right;">يعد عملية تعديل وليس إضافة.، وبالتالي نجد أن هذا الصف المعلومات المخزنة فيه عبارة عن زوج (مفتاح\قيمة)، والآن من أجل الحصول على قيمة مقابلة لمفتاح يكفي أن نكتب:</p>
<p style="text-align:left;" dir="ltr">Console.WriteLine(emailLookup["Abdulkarim.Kanaan@gmail.com"]);</p>
<p style="text-align:right;">ولكن في حال أننا لا نعرف المفتاح للقيمة التي نبحث عنها على المعلومات المخزنة داخل الكائن emailLookup من الصف Hashtable دعنا نكتب:</p>
<p style="text-align:left;" dir="ltr">foreach (object obj in emailLookup)<br />
{<br />
    Console.WriteLine(obj);<br />
}</p>
<p>ولكن ياللمفاجأة ما هذه النواتج؟:
</p>
<p style="text-align:left;">System.Collections.DictionaryEntry<br />
System.Collections.DictionaryEntry</p>
<p> ما الذي حدث؟ الذي حدث أنك حصلت على كائن من الصف DictionaryEntry وليس مفتاح أو قيمة للمفتاح، حتى يتم العمل بشكل سليم عليك أن تنشئ كائن من الصف DictioaryEntry كما في المثال التالي:
</p>
<p style="text-align:left;" dir="ltr">foreach (DictionaryEntry entry in emailLookup)<br />
{<br />
    Console.WriteLine(entry.Value);<br />
}</p>
<p> </p>
<p>جميع صفوف القواميس تدعم الواجهة IDictionary المشتقة من الواجهة ICollection، أهم الخصائص والاجراءات للواجهة IDictionary مبينة في الجدوليت التاليين:<br />
<span style="text-decoration:underline;"><strong>اسم الخاصية</strong></span>               <strong><span style="text-decoration:underline;">الوصف</span></strong><br />
IsFixedSize           هذه القيمة تشير فيما إذا كان بالامكان تغير سعة المجمع.<br />
IsReadOnly           تشير هذه القيمة إلى أنه إذا كان بالإمكان تغير قيم المجمع.<br />
Keys                     يعيد كائن من الواجهة ICollection يحتوي على قائمة المفاتيح المخزنة داخل المجمع.<br />
Values                  يعيد كائن من الواجهة ICollection يحتوي على قائمة قيم المفاتيح المخزنة داخل المجمع.</p>
<p><strong><span style="text-decoration:underline;">اسم الاجراء</span></strong>                <strong><span style="text-decoration:underline;">الوصف<br />
</span></strong>Add                      إضافة زوج (مفتاح\قيمة) إلى المجمع.<br />
Clear                    حذف كافة عناصر المجمع.<br />
Contains              التحقق فبما إذا كان مفتاح محدد موجود داخل المجمع.<br />
GetEnumerator     يعيعد كائن من الواجهة IDictionaryEnumerator، هذا الاجراء مختلف عن ذلك الذي يعيد كائن من الواجهة IEnumerable<br />
Remove                يحذف عنصر من المجمع وذلك من خلال مفتاح محدد.</p>
<p>أو يمكن الحصول على القيم المخزنة داخل مجمع كما يلي:</p>
<p> 
</p>
<p style="text-align:left;" dir="ltr">foreach (object obj in emailLookup.Values)<br />
{<br />
    Console.WriteLine(obj);<br />
}</p>
<p>بالإضافة إلى ذلك فإن الصف Hashtable يحوي عل تابعين من أجل معرفة فيما إذا كان فتاح أو قيمة مفتاح موجودة داخل المجمع، الجول التالي يوضحهما:<br />
<strong><span style="text-decoration:underline;">اسم الاجراء</span></strong>                      <strong><span style="text-decoration:underline;">الوصف<br />
</span></strong>ContainsKey               يتحقق فيما إذا كان المجمع يحتوي على مفتاح محدد.<br />
ContainsValue           يتحقق فيما إذا كان المجمع يحتوي على قيمة مفتاح محدد.
</p>
<p style="text-align:right;"><strong>فهم عملية المساواة (التساوي) Equality:<br />
</strong>يستخدم الصف Hashtable قيمة من نمط العدد الصحيح تقابل المفتاح، يستخدم هذه القيمة من أجل تسريع عمليات البحث عن مفتاح محدد، حيث أن كل صف في .NET مشتق من الصف <span style="text-decoration:underline;"><span style="color:#bb66ff;">Object</span></span> الذي يدعم الاجراء GetHash الذي يعيد بدوره قيمة عددية صحيحة فريدة تعرف الكائن، في الصف Hashtable يتم تخزين قيمة فريدة للمفاتيح المخزنة في نفس الكائن، فعندما نقوم بمحاولة تخزين مفتاح مرتين (هذه الكلمة من ذهب: كيف يعرف أن هذا المفتاح مكرر؟؟ تابع لتعرف السبب) فإن المرة الثانية سوف تعتبر استدعاء لمفتاح الأول من أجل تعديل القيمة المقابلة له، على سبيل المثال:
</p>
<p style="text-align:right;"> </p>
<p style="text-align:left;" dir="ltr">Hashtable duplicates = new Hashtable();</p>
<p style="text-align:left;" dir="ltr">duplicates["First"] = &#8220;1st&#8221;;<br />
duplicates["First"] = &#8220;the first&#8221;;
</p>
<p style="text-align:left;" dir="ltr">Console.WriteLine(duplicates.Count); \\1</p>
<p style="text-align:right;">بما أن كلا المفتاحين متساويين في القيمة فإنه يعتبر تعديل للقيمة المقابلة للمفتاح الأول، في الحقيقة قد تم ذلك باستدعاء الاجراء GetHashCode الموجود في الصف String وبالرغم من أن كلا منهما (المفتاحين) كائن مستقل إلا أنه تم التعرف عليها على أنهما كائن واحد.<br />
حتى نفهم الأمر الأكثر دعنا ننشىء صف جديد ونسميه Fish كما يلي:</p>
<p style="text-align:left;" dir="ltr">public class Fish<br />
{<br />
    string name;</p>
<p style="text-align:left;" dir="ltr">    public Fish(string theName)<br />
    {<br />
        name = theName;<br />
    }<br />
}
</p>
<p style="text-align:right;">والان إذا قمنا بإنشاء كائنين من هذا الصف الجديد وجعلنا الخاصية name تأخذ نفس القيمة، دعنا نرى ماذا سوف يعتبرهما الكائن من الصف Hashtabel هل هما متساويين أم لا؟</p>
<p style="text-align:right;"> </p>
<p style="text-align:left;" dir="ltr">Hashtable duplicates = new Hashtable();</p>
<p style="text-align:left;" dir="ltr">Fish key1 = new Fish(&#8220;Herring&#8221;);<br />
Fish key2 = new Fish(&#8220;Herring&#8221;);</p>
<p style="text-align:left;" dir="ltr">duplicates[key1] = &#8220;Hello&#8221;;<br />
duplicates[key2] = &#8220;Hello&#8221;;
</p>
<p style="text-align:left;" dir="ltr">Console.WriteLine(duplicates.Count); // 2</p>
<p style="text-align:right;"> </p>
<p style="text-align:right;">لقد اعتبر الكائن duplicates كلا من الكائنين key1, key2 كائنين غير متساويين لأن التابع GetHashCode قد أنشىء قيمتين مختلفتين لكل منهما، حتى نعالج هذا الأمر يجب أن نتجاوز المنهج GetHashCode من الصف <span style="text-decoration:underline;"><span style="color:#bb66ff;">Object</span></span> ونعرفه نحن بأنفسنا كما يلي:</p>
<p style="text-align:left;" dir="ltr">public override int GetHashCode()<br />
{<br />
    return name.GetHashCode();<br />
} 
</p>
<p style="text-align:right;">والان عندما يتم استدعاء المنهح GetHashCode فإنه سيعيد نفس القيمة وذلك في حال قيمة name متساوية، ولكن مع ذلك لن نكون قد حللنا المشكلة والسبب في ذلك أنه يوجد تابع آخر في الصف <span style="text-decoration:underline;"><span style="color:#bb66ff;">Object</span></span> يدعى Equals فهو يعيد القيمة false إذا كان كلا الكائنين من نسختين مختلفتين (أي لا يحملان نفس العنوان اللذان يشيران له في الذاكرة) ولحل هذه المشكلة نقوم بتجاوز المنهج Equals كما يلي:</p>
<p style="text-align:left;" dir="ltr">public override bool Equals(object obj)<br />
{<br />
    Fish otherFish = obj as Fish;</p>
<p style="text-align:left;" dir="ltr">    if (otherFish == null)<br />
        return false;</p>
<p style="text-align:left;" dir="ltr">    return otherFish.name == this.name;<br />
}
</p>
<p style="text-align:right;">الان أعد تشغيل البرنامج ولا حظ الفرق.</p>
<p style="text-align:right;">استخدام الواجهة IEqualityComparer: تحتوي هذه الواجهة على تابعين اثنين الأول: GetHashCode والثاني Equals سوف نقوم بالاستفادة من هذه الواجهة فيما يلي لنعد إلى المثال:</p>
<p style="text-align:left;" dir="ltr">Hashtable duplicates = new Hashtable();</p>
<p style="text-align:left;" dir="ltr">duplicates["First"] = &#8220;1st&#8221;;<br />
duplicates["First"] = &#8220;the first&#8221;;
</p>
<p style="text-align:left;" dir="ltr">Console.WriteLine(duplicates.Count); \\1</p>
<p style="text-align:right;">ولنقم بتغير قيمة أحد المفاتيح من First إلى first وأعد التشغيل ستلاحظ أن الكائن من الصف Hashtable قد إعتبرهما كائنين مختلفين، والمطلوب الآن إلغاء التحسس لحالة الأحرف، كيف سنقوم بعمل ذلك؟؟ لاحظ إن الباني للصف Hashtable يقبل كائن من نوع IEqualityComparer سوف تستفيد منها بإنشاء صف يرث من هذه الواجهة ثم تجهيز عملية المقارنة كما نريد:</p>
<p style="text-align:left;" dir="ltr">public class InsensitiveComparer : IEqualityComparer<br />
{<br />
CaseInsensitiveComparer _comparer = new CaseInsensitiveComparer();
</p>
<p style="text-align:left;">    #region IEqualityComparer Members</p>
<p style="text-align:left;" dir="ltr">    public int GetHashCode(object obj)<br />
    {<br />
        return obj.ToString().ToLowerInvariant().GetHashCode();<br />
    }</p>
<p style="text-align:left;" dir="ltr">    public new bool Equals(object x, object y)<br />
    {<br />
        if (_comparer.Compare(x, y) == 0)<br />
        {<br />
            return true;<br />
        }<br />
        else<br />
        {<br />
            return false;<br />
        }<br />
    }</p>
<p style="text-align:left;" dir="ltr">    #endregion<br />
}
</p>
<p style="text-align:right;">أعد كتابة الكود السابق كما يلي:</p>
<p style="text-align:left;" dir="ltr">Hashtable duplicates = new Hashtable(new InsensitiveComparer());</p>
<p style="text-align:left;" dir="ltr">duplicates["First"] = &#8220;1st&#8221;;<br />
duplicates["first"] = &#8220;the first&#8221;;
</p>
<p style="text-align:left;" dir="ltr">Console.WriteLine(duplicates.Count); // 1</p>
<p style="text-align:right;">ولاحظ الناتج!!!.</p>
<p style="text-align:right;">بقي ذكر شيء واحد أن الصف Hashtable يقوم بترتيب العناصر المدخلة تلقائيا تبعا لقيمة Hash للمفاتيح المدخلة، المثال التالي يوضح ذلك:</p>
<p style="text-align:left;" dir="ltr">Hashtable ht = new Hashtable();<br />
ht.Add(0, &#8220;Zero&#8221;);<br />
ht.Add(2, &#8220;Two&#8221;);<br />
ht.Add(1, &#8220;One&#8221;);</p>
<p style="text-align:left;" dir="ltr">foreach (DictionaryEntry de in ht)<br />
{<br />
    Console.WriteLine(&#8220;Key:{0}, Value:{1}&#8221;, de.Key, de.Value);<br />
}
</p>
<p style="text-align:right;">الناتج سيكون:</p>
<div style="text-align:left;">Key:2, Value:Two<br />
Key:1, Value:One<br />
Key:0, Value:Zero</div>
<p style="text-align:right;">يمكن تحميل مثال الدرس من الرابط التالي:</p>
<p><!-- google_ad_section_end --></p>
<p style="text-align:right;"> </p>
<p style="text-align:right;"> </p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/kanaan85.wordpress.com/69/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/kanaan85.wordpress.com/69/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/kanaan85.wordpress.com/69/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/kanaan85.wordpress.com/69/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/kanaan85.wordpress.com/69/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/kanaan85.wordpress.com/69/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/kanaan85.wordpress.com/69/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/kanaan85.wordpress.com/69/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/kanaan85.wordpress.com/69/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/kanaan85.wordpress.com/69/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kanaan85.wordpress.com&blog=2943185&post=69&subd=kanaan85&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://kanaan85.wordpress.com/2008/10/15/hashtable/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fc9fb0a128c9a23601091f1e32f664ec?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">كنعان</media:title>
		</media:content>
	</item>
		<item>
		<title>التعمق في لغة C# (المقالة الأولى)</title>
		<link>http://kanaan85.wordpress.com/2008/10/15/c-sharp-in-deep-1/</link>
		<comments>http://kanaan85.wordpress.com/2008/10/15/c-sharp-in-deep-1/#comments</comments>
		<pubDate>Wed, 15 Oct 2008 03:17:47 +0000</pubDate>
		<dc:creator>عبد الكريم كنعان</dc:creator>
				<category><![CDATA[عام]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Deep]]></category>
		<category><![CDATA[Main Method]]></category>

		<guid isPermaLink="false">http://kanaan85.wordpress.com/?p=51</guid>
		<description><![CDATA[لا بد أنك عزيزي المبرمج قد قمت بكتابة من الأوامر والتعليمات وأنشأت العديد من البرامج من نوع Console Application وخاصة في بداية تعلمك للغة C#، فهذا يعني أنك قد صادفت وبدون شك التابع Main،،
حديثي سيكون بداية عن التابع Main، دعني بداية أطرح عليك السؤال التالي:
ما هو التابع Main؟؟
الجواب وبكل بساطة هو أن هذا التابع يعتبر [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kanaan85.wordpress.com&blog=2943185&post=51&subd=kanaan85&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><strong>لا بد أنك عزيزي المبرمج قد قمت بكتابة من الأوامر والتعليمات وأنشأت العديد من البرامج من نوع Console Application وخاصة في بداية تعلمك للغة C#، فهذا يعني أنك قد صادفت وبدون شك التابع Main،،<br />
</strong>حديثي سيكون بداية عن التابع Main، دعني بداية أطرح عليك السؤال التالي:</p>
<p><strong><span style="text-decoration:underline;">ما هو التابع Main؟؟</span></strong><br />
الجواب وبكل بساطة هو أن هذا التابع يعتبر نقطة الانطلاق لأي برنامج، فأنت إنطلاقا من كونك مبرمج، وهذا شيء أكيد يجب أن تضع نصب عينيك أن أول تابع سوف يتم تنفيذه أو البدء بتنفيذه لن يكون سوى التابع Main، وبالتالي أنت ملزم ببناءه إن كنت لا تملك نسخة من Visual Studio، إذ أن بيئة Visual Studio ستقوم نيابة عنك ببنائه.</p>
<p><span id="more-51"></span></p>
<p><strong><span style="text-decoration:underline;">هل للتابع Main شكل محدد؟</span></strong><br />
لا ليس له شكل محدد، يمكنك بناؤه بعدة أشكال، ولكن ضمن بعض القواعد التالية:</p>
<ul>
<li>يجب أن يكون التابع ستاتيكي static.</li>
<li>يجب أن يكون نوع القيمة المرجعة للتابع void أو int.</li>
<li>يجب أن يكون اسم التابع حصريا Main فلا يمكن أن يكون main أو MaiN أو MAIN.</li>
<li>يمكن أن يكون للتابع برامتر أو لا يكون.</li>
<li>ليس من الضروري أن يكون التابع public.</li>
</ul>
<p>لاحظ بعض من أشكاله:</p>
<p> </p>
<div dir="ltr"><span style="color:#0000ff;"><span style="font-family:Courier New;">static</span></span><span style="font-family:Courier New;"> <span style="color:#0000ff;">void</span> Main(<span style="color:#0000ff;">string</span>[] args)</span><br />
<span style="font-family:Courier New;">{</span><br />
<span style="font-family:Courier New;">}<br />
</span><br />
<span style="color:#0000ff;"><span style="font-family:Courier New;">static</span></span><span style="font-family:Courier New;"> <span style="color:#0000ff;">int</span> Main(<span style="color:#0000ff;">string</span>[] args)</span><br />
<span style="font-family:Courier New;">{</span><br />
<span style="font-family:Courier New;">}<br />
</span><br />
<span style="color:#0000ff;"><span style="font-family:Courier New;">static</span></span><span style="font-family:Courier New;"> <span style="color:#0000ff;">void</span> Main()</span><br />
<span style="font-family:Courier New;">{</span><br />
<span style="font-family:Courier New;">}</span></div>
<p> </p>
<p>لابد وأن الشكل الثاني بالنسبة للقيمة المرجعة int من الأشكال الغير مألوفة لديك، إلا إذا كنت من مبرمجي لغة C, دعني أشرح لك القضية لا بد أنك سريع البديهة ولاحظت أنه في هذه الحالة يتوجب عليك إرجاع قيمة باستخدام تعليمة return، إن الغاية من هذه القيمة المرجعة هي معرفة الحالة التي انتها بها البرانامج، أي أن البرنامج إذا أرجع قيمة 0 فهذا يعني أن البرنامج قد انهى التنفيذ بنجاح ما عدا ذلك تنعني أنه قد حصل خطأ ما أثناء تنفيذ البرنامج، والان قد يتبادر إلى ذهنك ما هي الفائدة من هذه القيمة المرجعة؟</p>
<p>إن نظام التشغيل يلتقط هذه القيمة ويضعها في متحول اسمه %ERRORLEVEL%، وبالتالي إذا كنت قد أنشأت برنامج يقوم بتشغيل برنامج آخر، فإنك قد تحتاج لمعرفة الحالة التي أنهى بها البرنامج عمله!!<br />
وبالتالي حتى تستطيع الوصول إلى القيمة التي أعادها البرنامج فهناك طريقتين:<br />
الأولى،، عن طريق المتحول %ERRORLEVEL%<br />
الثانية،، عن طريق الخاصة System.Diagnostics.Proccess.ExitCode<!-- google_ad_section_end --><!-- / message --><!-- sig --></p>
<div style="text-align:right;"> دعنا نوضح الكلام السابق عن طريق مثال بسيط يعتمد على الطريقة الأولى:</div>
<ol>
<li>
<div style="text-align:right;">قم بإنشاء مشروع من نوع Console Application</div>
</li>
<li>
<div style="text-align:right;">ضمن التابع Main قم بكتابة الكود التالي:</div>
</li>
</ol>
<p style="text-align:right;" dir="ltr"> </p>
<div style="text-align:left;" dir="ltr"><span style="color:#0000ff;"><span style="font-family:Courier New;">static</span></span><span style="font-family:Courier New;"> <span style="color:#0000ff;">int</span> Main(<span style="color:#0000ff;">string</span>[] args)</span><br />
<span style="font-family:Courier New;">{</span><br />
<span style="font-family:Courier New;">   <span style="color:#008000;">// Display a message and wait for Enter key to be pressed</span></span></div>
<div style="text-align:left;" dir="ltr"><span style="font-family:Courier New;">   <span style="color:#2b91af;">Console</span>.WriteLine(<span style="color:#a31515;">&#8220;***** My First C# App *****&#8221;</span>);</span><br />
<span style="font-family:Courier New;">   <span style="color:#2b91af;">Console</span>.WriteLine(<span style="color:#a31515;">&#8220;Hello World!&#8221;</span>);</span><br />
<span style="font-family:Courier New;">   <span style="color:#2b91af;">Console</span>.WriteLine();</span><br />
<span style="font-family:Courier New;">   <span style="color:#008000;">// Return an arbitrary error code.</span></span><br />
<span style="font-family:Courier New;">   <span style="color:#0000ff;">return</span> -1;</span><br />
<span style="font-family:Courier New;">}</span> </div>
<p> </p>
<ol>
<li>
<div style="text-align:right;"> إذهب إلى مجلد Debug الموجود داخل مجلد bin، وقم بإنشاء ملف باسم Test.bat، وباسخدام برنامج Notepad قم بكتابة الكود التالي:</div>
</li>
</ol>
<div style="text-align:right;"> </div>
<div style="text-align:left;" dir="ltr">@echo off<br />
rem A batch file for SimpleCSharpApp.exe<br />
rem which captures the app&#8217;s return value.<br />
UsingErrorLevel.exe<br />
@if %ERRORLEVEL% == &#8220;0&#8243; goto success<br />
:fail<br />
    echo This application has failed!<br />
    echo return value = %ERRORLEVEL%<br />
    goto end<br />
:success<br />
    echo This application has succeeded!<br />
    echo return value = %ERRORLEVEL%<br />
    goto end<br />
:end<br />
    echo All Done.</div>
<div style="text-align:right;"> </div>
<div style="text-align:right;">4. ثم قم بتشغيل الملف Test.bat ولاحظ النتائج:</div>
<div style="text-align:right;"> </div>
<div style="text-align:right;">
<div id="attachment_54" class="wp-caption aligncenter" style="width: 460px"><a href="http://kanaan85.files.wordpress.com/2008/10/corecsharpstruct.jpg"><img class="size-full wp-image-54" title="core csharp struct" src="http://kanaan85.files.wordpress.com/2008/10/corecsharpstruct.jpg?w=450&#038;h=153" alt="Core C Sharp Struct" width="450" height="153" /></a><p class="wp-caption-text">Core C Sharp Struct</p></div>
</div>
<div style="text-align:right;"> </div>
<div style="text-align:right;">ملاحظة: إن القيمة المرجعة الافتراضية للتابع Main هي void، في هذه الحالة ستكون قيمة المتحول هي 0 في حال أنه لم يحدث أي خطأ في البرنامج، وكأن برنامجك قد أعاد القيمة 0 أي &#8220;return 0&#8243;</div>
<div style="text-align:right;"> </div>
<div style="text-align:right;"> </div>
<div style="text-align:right;"><span style="text-decoration:underline;"><strong>معالجة القيم الممررة إلى المتحول args:</strong></span></div>
<div style="text-align:right;"><strong></strong> </div>
<div style="text-align:right;">أعتذر عزيزي المبرمج إن كان عنوان الفقرة غير مناسب، دعني بكلمات أخرى أشرح لك الأمر،، إن التابع Main له برامتر واحد إن وجد ألا وهو args من نوع string[]،، ماهي الفائدة منها، إن الفائدة من هذا البرامتر هو تمرير بعض القيم للبرنامج أثناء تشغيله، لا تقلق أبدا إن كنت لم تفهم ما عنيته إلى الآن فالأسطر القادمة ستكون كيفلة بإيضاح الفكرة إن شاء الله، فأنا أعلم ضعفي في اللغة العربية،</div>
<div style="text-align:right;">الان دعنا نقوم ببناء حلقة foreach تقوم بطباعة محتوى البرامتر args، على النحو التالي:</div>
<div style="text-align:left;">
<div dir="ltr"></div>
<div dir="ltr"><span style="color:#0000ff;"><span style="font-family:Courier New;">static</span></span><span style="font-family:Courier New;"> <span style="color:#0000ff;">void </span>Main(<span style="color:#0000ff;">string</span>[] args)</span><br />
<span style="font-family:Courier New;">{</span><br />
<span style="font-family:Courier New;">  <span style="color:#0000ff;">foreach</span> (<span style="color:#0000ff;">string</span> s <span style="color:#0000ff;">in</span> args)</span><br />
<span style="font-family:Courier New;">  { <span style="color:#2b91af;">Console</span>.WriteLine(s); }</span><br />
<span style="font-family:Courier New;">}</span></div>
</div>
<div style="text-align:right;">والآن قم بتشغيل البرنامج لتلاحظ لا شيء في نافذة Console Window، والسبب في ذلك أن المصفوفة args لا تحتوي على أية عنصر!!</div>
<div style="text-align:right;">والان ربما سيتبادر إلى ذهنك أنه كيف لي أن أمرر قيم إلى البرنامج؟<br />
إن الإجابة عن السؤال غاية في البساطة، قم بتشغيل نافذة محرر الأوامر Command Line، الخاصة بالـ Visual Studio أو الخاصة بنظام التشغيل Windows، وبعد أن تحدد المسار الموجود عليه الملف التنفيذي للبرنامج السابق، قم بكتابة التالي:</div>
<div style="text-align:right;"> </div>
<div style="text-align:left;">Test.exe C#.NET C++.NET VB.NET</div>
<div> </div>
<div>لتظر لك النتائج التالية لاحظ الشكل التالي:</div>
<div> </div>
<div>
<div id="attachment_52" class="wp-caption aligncenter" style="width: 405px"><a href="http://kanaan85.files.wordpress.com/2008/10/corecsharpstruct2.jpg"><img class="size-full wp-image-52" title="corecsharpstruct2" src="http://kanaan85.files.wordpress.com/2008/10/corecsharpstruct2.jpg?w=395&#038;h=97" alt="Core C Sharp Struct" width="395" height="97" /></a><p class="wp-caption-text">Core C Sharp Struct</p></div>
</div>
<div> </div>
<div>
<div>طبعا Test.exe هو اسم البرنامج،، لابد أنك لا حظت أني فصلت بين القيم السابقة بفراغ، هذه أحد الطرق ولاكن أنت لست مضرا إلى إختبار برنامجك كل مرة بإستخدام نافذة محرر الأوامر Command-Line فبيئة Visual Studio كعادتها تؤمن للمبرمج طرق سهله للتحقيق ما يصبوا إليه، فتابع معي هذه الطريقة إن كنت لم تيئس بعد من قراءة كلامي المفشكل!!</div>
<div> </div>
<ol>
<li>من نافذة Solution Explorer حدد على مشروعك ثم إضغط عليه بزر الفأرة الأيمن لتظهر قائمة منسدلة إختر منها Properties، لتظهر لك النافذة التالية: 
<div id="attachment_53" class="wp-caption alignnone" style="width: 460px"><a href="http://kanaan85.files.wordpress.com/2008/10/corecsharpstruct3.jpg"><img class="size-full wp-image-53" title="Core C Sharp Struct" src="http://kanaan85.files.wordpress.com/2008/10/corecsharpstruct3.jpg?w=450&#038;h=328" alt="Core C Sharp Struct" width="450" height="328" /></a><p class="wp-caption-text">Core C Sharp Struct</p></div>
<p> </li>
<li>ثم إختر التبويب Debug، لاحظ الشكل التالي: 
<div id="attachment_55" class="wp-caption alignnone" style="width: 460px"><a href="http://kanaan85.files.wordpress.com/2008/10/corecsharpstruct4.jpg"><img class="size-full wp-image-55" title="corecsharpstruct4" src="http://kanaan85.files.wordpress.com/2008/10/corecsharpstruct4.jpg?w=450&#038;h=329" alt="Core C Sharp Struct" width="450" height="329" /></a><p class="wp-caption-text">Core C Sharp Struct</p></div>
<p> </li>
<li>لاحظ الخيار Command line arguments، من خلال مربع النص هذا يمكنك كتابة القيم التي تود تمريرها إلى برنامجك، فمثلا جرب المثال السابق بكتابة C#.NET C++.NET VB.NET، ثم قم بتشغيل البرنامج مرة أخرى لتلاحظ ذات النتائج.</li>
</ol>
<div>
<div><strong><span style="color:#888888;"><span style="text-decoration:underline;">بعض المزايا الموجودة في الصف System.Enviroment</span><span style="text-decoration:underline;">:</span></span></strong></div>
<div> </div>
<div>يحتوي هذا الصف على العديد من الخصائص والتوابع المفيدة أذكر منها:</div>
<ul>
<li><span style="font-family:Arial;">التابع: <strong><em><span style="font-family:Tahoma;">GetCommandLineArgs()</span></em></strong></span><br />
وظيفة هذا التابع هو القيم التي مررت للبرنامج أثناء تشغيله، وبالتالي هذا يغنيك عن البرامتر args الموجود ضمن التابع Main.</li>
<li>الخاصية: <em><strong>ExitCode</strong></em><br />
هذه الخاصة تماثل عمل المتحول %ERRORLEVEL% الذي سبق وتحدثنا عنه.</li>
<li>الخاصية: <span style="font-family:Courier New;"><em><strong><span style="font-family:Tahoma;">MachineName</span></strong></em></span><br />
<span style="font-family:Courier New;"><span style="font-family:Tahoma;">هذه الخاصية تعطيك اسم الحاسب.<br />
</span></span></li>
<li>الخاصية: <em><strong>SystemDirectory</strong></em><br />
هذه الخاصية تقدم لك مسار مجلد نظام التشغيل لديك كاملاً.</li>
</ul>
<div><!-- google_ad_section_end --><!-- / message --><!-- sig --></div>
<p><!-- google_ad_section_end --><!-- / message --><!-- attachments --></div>
</div>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/kanaan85.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/kanaan85.wordpress.com/51/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/kanaan85.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/kanaan85.wordpress.com/51/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/kanaan85.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/kanaan85.wordpress.com/51/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/kanaan85.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/kanaan85.wordpress.com/51/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/kanaan85.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/kanaan85.wordpress.com/51/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kanaan85.wordpress.com&blog=2943185&post=51&subd=kanaan85&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://kanaan85.wordpress.com/2008/10/15/c-sharp-in-deep-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fc9fb0a128c9a23601091f1e32f664ec?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">كنعان</media:title>
		</media:content>

		<media:content url="http://kanaan85.files.wordpress.com/2008/10/corecsharpstruct.jpg" medium="image">
			<media:title type="html">core csharp struct</media:title>
		</media:content>

		<media:content url="http://kanaan85.files.wordpress.com/2008/10/corecsharpstruct2.jpg" medium="image">
			<media:title type="html">corecsharpstruct2</media:title>
		</media:content>

		<media:content url="http://kanaan85.files.wordpress.com/2008/10/corecsharpstruct3.jpg" medium="image">
			<media:title type="html">Core C Sharp Struct</media:title>
		</media:content>

		<media:content url="http://kanaan85.files.wordpress.com/2008/10/corecsharpstruct4.jpg" medium="image">
			<media:title type="html">corecsharpstruct4</media:title>
		</media:content>
	</item>
		<item>
		<title>تعرف على بعض ميزات Microsoft Framework 3.5 !!</title>
		<link>http://kanaan85.wordpress.com/2008/03/07/%d8%aa%d8%b9%d8%b1%d9%81-%d8%b9%d9%84%d9%89-%d8%a8%d8%b9%d8%b6-%d9%85%d9%8a%d8%b2%d8%a7%d8%aa-microsoft-framework-35/</link>
		<comments>http://kanaan85.wordpress.com/2008/03/07/%d8%aa%d8%b9%d8%b1%d9%81-%d8%b9%d9%84%d9%89-%d8%a8%d8%b9%d8%b6-%d9%85%d9%8a%d8%b2%d8%a7%d8%aa-microsoft-framework-35/#comments</comments>
		<pubDate>Fri, 07 Mar 2008 08:16:29 +0000</pubDate>
		<dc:creator>عبد الكريم كنعان</dc:creator>
				<category><![CDATA[عام]]></category>

		<guid isPermaLink="false">http://kanaan85.wordpress.com/?p=48</guid>
		<description><![CDATA[بعض ميزات Framework 3.5:إذا كنت من محبي التعرف على الجديد في عالم الدوت نيت فإن هذه المقالة تشكل مفتاح البداية للتعرف على بعض الجديد في هذه البيئة القوية لقد جاء Framework 3.5 حاملا بين طياته العديد من الميزات التي التي تزيد العمل في بيئة الدوت نيت سهولة أكبر، التي تدفع مبرمج الدوت نيت للتوجه إلى تعلم المزيد والمزيد [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kanaan85.wordpress.com&blog=2943185&post=48&subd=kanaan85&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p align="right"><span style="font-family:Arial,sans-serif;">بعض ميزات </span><span style="font-family:Arial,sans-serif;">Framework 3.5</span><span style="font-family:Arial,sans-serif;">:</span><span style="color:#000000;font-family:Arial,sans-serif;">إذا كنت من محبي التعرف على الجديد في عالم الدوت نيت فإن هذه المقالة تشكل مفتاح البداية للتعرف على بعض الجديد في هذه البيئة القوية</span><span style="font-family:Arial,sans-serif;"> لقد جاء </span><span style="font-family:Arial,sans-serif;">Framework 3.5</span><span style="font-family:Arial,sans-serif;"> حاملا بين طياته العديد من الميزات التي التي تزيد العمل في بيئة الدوت نيت سهولة أكبر، التي تدفع مبرمج الدوت نيت للتوجه إلى تعلم المزيد والمزيد فالبرمجة يمكن تشبيهها بالبحر الذي يمكن أن نقول عنه أنه له بداية وليس له نهاية، دعنا من خلال هذه المقالة نستعرض بعض الميزات الجديدة التي جائت بها بيئة .</span><span style="font-family:Arial,sans-serif;">NET</span><span style="font-size:12pt;line-height:115%;font-family:Arial,sans-serif;"> <span id="more-48"></span></span><span style="font-family:Arial,sans-serif;">دعنا مباشرة نبدأ الحديث عن بعض هذه التقنيات بدون أية مقدمات</span></p>
<p><strong><span style="color:#548dd4;font-family:Arial,sans-serif;"><span>1</span></span></strong><strong><span style="color:#548dd4;font-family:Arial,sans-serif;"><span>)<span style="font-family:'Times New Roman';">      </span></span></span></strong><strong><span style="color:#548dd4;font-family:Arial,sans-serif;">Automatic Properities</span></strong><strong><span style="color:#548dd4;font-family:Arial,sans-serif;">:<br />
</span></strong><span style="font-family:Arial,sans-serif;">نعلم انه إذا أردنا إنشاء صف </span><span style="font-family:Arial,sans-serif;">Point</span><span style="font-family:Arial,sans-serif;"> يحتوي على خاصيتين هما </span><span style="font-family:Arial,sans-serif;">X</span><span style="font-family:Arial,sans-serif;"> و </span><span style="font-family:Arial,sans-serif;">Y</span><span style="font-family:Arial,sans-serif;"> فإننا سوف نكتب الكود التالي:</span></p>
<p dir="ltr" align="left"><span style="font-size:10pt;color:#0000ff;font-family:'Courier New';">public</span><span style="font-size:10pt;font-family:'Courier New';"> <span style="color:#0000ff;">class</span> <span style="color:#2b91af;">Point<br />
</span></span><span style="font-size:10pt;font-family:'Courier New';">{<br />
</span><span style="font-size:10pt;font-family:'Courier New';"><span>    </span><span style="color:#0000ff;">private</span> <span style="color:#0000ff;">int</span> _x;<br />
</span><span style="font-size:10pt;font-family:'Courier New';"><span>    </span><span style="color:#0000ff;">private</span> <span style="color:#0000ff;">int</span> _y;<br />
</span><span style="font-size:10pt;font-family:'Courier New';"> <br />
</span><span style="font-size:10pt;font-family:'Courier New';"><span>    </span><span style="color:#0000ff;">public</span> <span style="color:#0000ff;">int</span> X<br />
</span><span style="font-size:10pt;font-family:'Courier New';"><span>    </span>{<br />
</span><span style="font-size:10pt;font-family:'Courier New';"><span>        </span><span style="color:#0000ff;">get</span> { <span style="color:#0000ff;">return</span> _x; }<br />
</span><span style="font-size:10pt;font-family:'Courier New';"><span>  </span><span style="color:#0000ff;"><span>      </span>set</span> { _x = <span style="color:#0000ff;">value</span>; }<br />
</span><span style="font-size:10pt;font-family:'Courier New';"><span>    </span>}<br />
</span><span style="font-size:10pt;font-family:'Courier New';"> <br />
</span><span style="font-size:10pt;font-family:'Courier New';"><span>    </span><span style="color:#0000ff;">public</span> <span style="color:#0000ff;">int</span> Y<br />
</span><span style="font-size:10pt;font-family:'Courier New';"><span>    </span>{<br />
       </span><span style="font-size:10pt;font-family:'Courier New';"><span>  </span><span style="color:#0000ff;">get</span> { <span style="color:#0000ff;">return</span> _y; }<br />
       </span><span style="font-size:10pt;font-family:'Courier New';"><span>  </span><span style="color:#0000ff;">set</span> { _y = <span style="color:#0000ff;">value</span>; }<br />
</span><span style="font-size:10pt;font-family:'Courier New';"><span>    </span>}<br />
</span><span style="font-size:10pt;font-family:'Courier New';"><span> </span>}</span></p>
<p><span style="font-family:Arial,sans-serif;">إذا فقد احتجنا لإنشاء هاتين الخاصيتن انشاء متحولات لهما من اجل تخزين القيم (خمن مالذي حدث!!!؟)، أصبح الآن بمقدورك كتابة الشيفرة السابقة بالشكل التالي:</span>
</p>
<p dir="ltr" align="left"><span style="font-size:10pt;color:#0000ff;font-family:'Courier New';">public</span><span style="font-size:10pt;font-family:'Courier New';"> <span style="color:#0000ff;">class</span> <span style="color:#2b91af;">Point<br />
</span></span><span style="font-size:10pt;font-family:'Courier New';">{<br />
</span><span style="font-size:10pt;color:#0000ff;font-family:'Courier New';"><span>    </span>public</span><span style="font-size:10pt;font-family:'Courier New';"> <span style="color:#0000ff;">int</span> X{ <span style="color:#0000ff;">get</span>; <span style="color:#0000ff;">set</span>; }<br />
</span><span style="font-size:10pt;color:#0000ff;font-family:'Courier New';"><span>    </span>public</span><span style="font-size:10pt;font-family:'Courier New';"> <span style="color:#0000ff;">int</span> Y { <span style="color:#0000ff;">get</span>; <span style="color:#0000ff;">set</span>; }<br />
</span><span style="font-size:10pt;font-family:'Courier New';">}</span></p>
<p><span style="font-family:Arial,sans-serif;">(أهاكذا يكفي؟ نعم) هو سيتول عنك إنشاء متحولات لهذه الخصائص، للنتقل الآن إلى الميزة التالية.</span></p>
<p><span style="font-size:10pt;font-family:Tahoma,sans-serif;"> </span><strong><span style="color:#548dd4;font-family:Arial,sans-serif;"><span>2)<span style="font-family:'Times New Roman';">      </span></span></span></strong><strong><span style="color:#548dd4;font-family:Arial,sans-serif;">Local Variable Type Inference</span></strong><strong><span style="color:#548dd4;font-family:Arial,sans-serif;"> (استنباط أنوع المتحولات المحلية):<br />
</span></strong><span style="font-family:Arial,sans-serif;">ماذا يعني استنباط أنواع المتحولات المحلية، دعني أوضح لك ذلك من خلال المثال التالي، إذا أردت إنشاء متحول من نوع عدد صحيح، وآخر من أجل عدد حقيقي وآخر من أجل تخزين سلسلة نصية ماذا تكتب؟ &#8220;طلب سخيف!!!</span>
</p>
<p dir="ltr" align="left"><span style="font-size:10pt;color:#0000ff;font-family:'Courier New';">int</span><span style="font-size:10pt;font-family:'Courier New';"> n = 0;<br />
</span><span style="font-size:10pt;color:#0000ff;font-family:'Courier New';">float</span><span style="font-size:10pt;font-family:'Courier New';"> f = 10.1F;<br />
</span><span style="font-size:10pt;color:#0000ff;font-family:'Courier New';">string</span><span style="font-size:10pt;font-family:'Courier New';"> s = <span style="color:#a31515;">&#8220;Visual Studio Orcas 2008&#8243;</span>;</span></p>
<p><span style="font-family:Arial,sans-serif;">اما الان فقد اصبح لديك إمكانية كتابة مايلي لتحقيق نفس الشيفرة السابقة كما يلي:</span><span style="font-size:10pt;color:#0000ff;font-family:'Courier New';"> </span>
</p>
<p dir="ltr" align="left"><span style="font-size:10pt;color:#0000ff;font-family:'Courier New';">var</span><span style="font-size:10pt;font-family:'Courier New';"> n = 0;<br />
</span><span style="font-size:10pt;color:#0000ff;font-family:'Courier New';">var</span><span style="font-size:10pt;font-family:'Courier New';"> f = 10.1F;<br />
</span><span style="font-size:10pt;color:#0000ff;font-family:'Courier New';">var</span><span style="font-size:10pt;font-family:'Courier New';"> s = <span style="color:#a31515;">&#8220;Visual Studio Orcas 2008&#8243;</span>;</span></p>
<p><span style="font-family:Arial,sans-serif;">يمن اعتباره تصريح عن متحولات بشكل ديناميكي، أي أن المترجم هو الذي سيتولى تحديد أنواع هذه المتحولات وذلك من خلال القيم المسندة إلى هذه الى المتحولات، ربما يقول قائل أن المترجم قد اعتبر هذه المتحولات من نوع </span><span style="font-family:Arial,sans-serif;">object</span><span style="font-family:Arial,sans-serif;"> لأنه يمكنك عندها استناد أي شيء، هذا الكلم غير صحيح على الاطلاق فالمترجم هنا في الشيفرة السابقة سوف يعرف المحتول </span><span style="font-family:Arial,sans-serif;">n</span><span style="font-family:Arial,sans-serif;"> على<span>  </span>أنه من نوع </span><span style="font-family:Arial,sans-serif;">int</span><span style="font-family:Arial,sans-serif;">، والمتحول </span><span style="font-family:Arial,sans-serif;">f</span><span style="font-family:Arial,sans-serif;"> من نوع </span><span style="font-family:Arial,sans-serif;">float</span><span style="font-family:Arial,sans-serif;">، والكائن </span><span style="font-family:Arial,sans-serif;">s</span><span style="font-family:Arial,sans-serif;"> من نوع </span><span style="font-family:Arial,sans-serif;">string</span><span style="font-family:Arial,sans-serif;">، (ربما يقول أحدنا أثبت ما تقول) يمكن أن تثبت صحة الكلام السابق بكتابة الشيفرة التالية:</span>
</p>
<p dir="ltr" align="left"><span style="font-size:10pt;color:#2b91af;font-family:'Courier New';">Console</span><span style="font-size:10pt;font-family:'Courier New';">.WriteLine(<span style="color:#a31515;">&#8220;n is: {0}&#8221;</span>, num.GetType());<br />
</span><span style="font-size:10pt;color:#2b91af;font-family:'Courier New';">Console</span><span style="font-size:10pt;font-family:'Courier New';">.WriteLine(<span style="color:#a31515;">&#8220;f is: {0}&#8221;</span>, f.GetType());<br />
</span><span style="font-size:10pt;color:#2b91af;font-family:'Courier New';">Console</span><span style="font-size:10pt;font-family:'Courier New';">.WriteLine(<span style="color:#a31515;">&#8220;s is: {0}&#8221;</span>, s.GetType());</span></p>
<p><span style="font-family:Arial,sans-serif;">سوف ينتج لديك</span><span style="font-family:Arial,sans-serif;">هل اقنعنا الان؟</span><span style="font-family:Arial,sans-serif;">(&#8220;طيب شو هالميزة يلي ما لا طعمة كان بإمكاني أن أصرح عن هذه المتحولات بشكل الاعتيادي ويكفي&#8221;) سوف تكتشف فائدة الميزة هذه في الفقرات التالية.</span></p>
<p><strong><span style="color:#548dd4;font-family:Arial,sans-serif;"><span>3)<span style="font-family:'Times New Roman';">      </span></span></span></strong><strong><span style="color:#548dd4;font-family:Arial,sans-serif;"><span> </span>التصريح عن الكائنات والمجموعات </span></strong><strong><span style="color:#548dd4;font-family:Arial,sans-serif;">Object Initializers &amp; Collection Initializers</span></strong><strong><span style="color:#548dd4;font-family:Arial,sans-serif;">:</span></strong></p>
<p><strong></strong><span style="font-family:Arial,sans-serif;">إذا أخبرتك يا عزيزي المبرمج أتذكر الصف </span><span style="font-family:Arial,sans-serif;">Point</span><span style="font-family:Arial,sans-serif;"> السابق؟ أريد منك أن تنشئ كائنا منه وتضبط قيم خصائصة بقيمة الصفر. -شو هاشغلة ميت طلب مثل هالطلب- فستكتب الشكل التالي إلا إذا كنت قد سبقتني إلى التعرف ما سوف أخبرك عنه.</span>
</p>
<p dir="ltr" align="left"><span style="font-size:10pt;color:#2b91af;font-family:'Courier New';">Point</span><span style="font-size:10pt;font-family:'Courier New';"> p = <span style="color:#0000ff;">new</span> <span style="color:#2b91af;">Point</span>();</span><span style="font-size:10pt;font-family:'Courier New';"><span style="color:#008000;">// var p = new Point();<br />
</span><span style="font-size:10pt;font-family:'Courier New';">p.X = 0;<br />
</span><span style="font-size:10pt;font-family:'Courier New';">p.Y = 0;</span></span></p>
<p><span style="font-size:10pt;font-family:'Courier New';"></span><span style="font-size:10pt;font-family:'Courier New';"><span style="font-family:Arial,sans-serif;">ولكن لو أخبرتك أنه هل هناك طريقة تبسط علي إعطاء القيم الابتدائية اهذه الخصائص؟ فسيكون جوابك: بكل تأكيد كل ما عليك هو إنشاء باني لهذا الصف وتمرر من خلاله قيم الخصائص. كلامك سليم ولكن دعني الان أؤريك ماذا يمكن عمله الان بدون بناء هذا الباني، كلما عليك هو تعديل شيفرة التصريح عن هذا الكائن ليصبح بالشكل التالي:</span></span>
</p>
<p dir="ltr" align="left"><span style="font-size:10pt;font-family:Tahoma,sans-serif;"> </span><span style="font-size:10pt;color:#2b91af;font-family:'Courier New';">Point</span><span style="font-size:10pt;font-family:'Courier New';"> p = <span style="color:#0000ff;">new</span> <span style="color:#2b91af;">Point</span>() { X = 0, Y = 0 };</span></p>
<p><span style="font-family:Arial,sans-serif;">ما رؤيك؟؟ ولا ننسى القول أن هذه الميزة يمكن تطبيقها على المجمعات، على الشكل التالي:</span></p>
<p dir="ltr" align="left"><span style="font-size:10pt;font-family:Tahoma,sans-serif;"> </span><span style="font-size:10pt;color:#2b91af;font-family:'Courier New';">List</span><span style="font-size:10pt;font-family:'Courier New';">&lt;<span style="color:#2b91af;">Point</span>&gt; points = <span style="color:#0000ff;">new</span> <span style="color:#2b91af;">List</span>&lt;<span style="color:#2b91af;">Point</span>&gt;() {<br />
</span><span style="font-size:10pt;font-family:'Courier New';"><span>    </span><span style="color:#0000ff;">new</span> <span style="color:#2b91af;">Point</span>() { X = 1, Y = 1 },<br />
</span><span style="font-size:10pt;font-family:'Courier New';"><span>    </span><span style="color:#0000ff;">new</span> <span style="color:#2b91af;">Point</span>() { X = 2, Y = 3 }<br />
</span><span style="font-size:10pt;font-family:'Courier New';">};</span></p>
<p><strong><span style="color:#548dd4;font-family:Arial,sans-serif;"><span>4)<span style="font-family:'Times New Roman';">      </span></span></span></strong><strong><span style="color:#548dd4;font-family:Arial,sans-serif;"><span> </span>الأنواع المجهولة </span></strong><strong><span style="color:#548dd4;font-family:Arial,sans-serif;">Anonymous Types</span></strong><strong><span style="color:#548dd4;font-family:Arial,sans-serif;">: (هل بقي أكثر من هذا جهل)</span></strong></p>
<p><strong></strong><strong></strong><span style="font-family:Arial,sans-serif;">تمكنك اللغة الآن من التصريح عن أنواع جديدة </span><span style="font-family:Arial,sans-serif;">-</span><span style="font-family:Arial,sans-serif;">ليكون تمزح- <strong><span style="text-decoration:underline;">بدون</span></strong> أن تقوم بإنشاء صف جديد -يعني كيف- لو أردنا إنشاء كائن يمثل نقطة بدون أن تقوم بإنشاء الصف السابق </span><span style="font-family:Arial,sans-serif;">Point</span><span style="font-family:Arial,sans-serif;"> فستقول لي مستحيل، ولكنني سأقول لك لا شيء مستحيل أبدا، لاحظ الشيفرة التالية التي ستقوم بتأدية نفس الغرض:</span>
</p>
<p dir="ltr" align="left"><span style="font-size:10pt;font-family:Tahoma,sans-serif;"> </span><span style="font-size:10pt;color:#0000ff;font-family:'Courier New';">var</span><span style="font-size:10pt;font-family:'Courier New';"> p = <span style="color:#0000ff;">new</span> { X = 1, Y = 2 };<br />
</span><span style="font-size:10pt;font-family:'Courier New';"> <br />
</span><span style="font-size:10pt;color:#2b91af;font-family:'Courier New';">Console</span><span style="font-size:10pt;font-family:'Courier New';">.WriteLine(<span style="color:#a31515;">&#8220;p.X = {0}&#8221;</span>, p.X);<br />
</span><span style="font-size:10pt;color:#2b91af;font-family:'Courier New';">Console</span><span style="font-size:10pt;font-family:'Courier New';">.WriteLine(<span style="color:#a31515;">&#8220;p.Y = {0}&#8221;</span>, p.Y);</span></p>
<p><span style="font-family:Arial,sans-serif;">أنوه مرة أخرى بدون كتابة الشيفرة السابقة للصف </span><span style="font-family:Arial,sans-serif;">Point</span><span style="font-family:Arial,sans-serif;">.</span><span style="font-size:10pt;font-family:Tahoma,sans-serif;"> </span></p>
<p><strong><span style="color:#548dd4;font-family:Arial,sans-serif;"><span>5)<span style="font-family:'Times New Roman';">      </span></span></span></strong><span style="font-family:Arial,sans-serif;"><span> </span></span><span><span style="color:#548dd4;font-family:Arial,sans-serif;">تعابير لامدا<span>  </span></span></span><span><span style="color:#548dd4;font-family:Arial,sans-serif;">Lambda Expressions</span></span><span style="color:#548dd4;font-family:Arial,sans-serif;">:</span><span style="font-family:Arial,sans-serif;">في </span><span style="font-family:Arial,sans-serif;">C# 2.0</span><span style="font-family:Arial,sans-serif;"> يوجد الاجراءات المجهولة (العامة </span><span style="font-family:Arial,sans-serif;">Generic</span><span style="font-family:Arial,sans-serif;">)، فمثلا في </span><span style="font-family:Arial,sans-serif;">C# 2.0</span><span style="font-family:Arial,sans-serif;"> يمكن كتابة الشيفرة التالية:</span>
</p>
<p dir="ltr" align="left"><span style="font-size:10pt;color:#0000ff;font-family:'Courier New';">class</span><span style="font-size:10pt;font-family:'Courier New';"> <span style="color:#2b91af;">Program<br />
</span></span><span style="font-size:10pt;font-family:'Courier New';">{<br />
</span><span style="font-size:10pt;font-family:'Courier New';"><span>    </span><span style="color:#0000ff;">delegate</span> R <span style="color:#2b91af;">MyDelegate</span>&lt;A, R&gt;(A arg);<br />
</span><span style="font-size:10pt;font-family:'Courier New';"> <br />
</span><span style="font-size:10pt;font-family:'Courier New';"><span>    </span><span style="background:silver;color:#2b91af;">MyDelegate</span><span style="background:silver;">&lt;<span style="color:#0000ff;">int</span>, <span style="color:#0000ff;">bool</span>&gt; IsPositive = <span style="color:#0000ff;">delegate</span>(<span style="color:#0000ff;">int</span> num)<br />
</span></span><span style="font-size:10pt;font-family:'Courier New';"><span>    </span><span style="background:silver;">{<br />
</span></span><span style="font-size:10pt;font-family:'Courier New';"><span>        </span><span style="background:silver;color:#0000ff;">return</span><span style="background:silver;"> num &gt; 0;<br />
</span></span><span style="font-size:10pt;font-family:'Courier New';"><span>    </span><span style="background:silver;">};<br />
</span></span><span style="font-size:10pt;font-family:'Courier New';"> <br />
</span><span style="font-size:10pt;font-family:'Courier New';"><span>    </span><span style="color:#0000ff;">static</span> <span style="color:#0000ff;">void</span> Main(<span style="color:#0000ff;">string</span>[] args)<br />
</span><span style="font-size:10pt;font-family:'Courier New';"><span>    </span>{<br />
</span><span style="font-size:10pt;font-family:'Courier New';"><span>        </span><span style="color:#2b91af;">Program</span> p = <span style="color:#0000ff;">new</span> <span style="color:#2b91af;">Program</span>();<br />
</span><span style="font-size:10pt;font-family:'Courier New';"><span>        </span><span style="color:#2b91af;">Console</span>.WriteLine(p.IsPositive(2));<br />
</span><span style="font-size:10pt;font-family:'Courier New';"><span>        </span><span style="color:#2b91af;">Console</span>.WriteLine(p.IsPositive(-2));<br />
<span>    </span>}<br />
</span><span style="font-size:10pt;font-family:'Courier New';">}</span></p>
<p><span style="font-family:Arial,sans-serif;">-طيب هذا الكلام أين الجديد فيه- الجديد فيه هو أنه يمكنك إعادة كتابة التابع </span><span style="font-family:Arial,sans-serif;">IsPositive</span><span style="font-family:Arial,sans-serif;"> </span><span style="font-family:Arial,sans-serif;"><span> </span>في سطر واحد بالشكل التالي:</span>
</p>
<p style="text-align:left;" dir="ltr"><span style="font-size:10pt;font-family:Tahoma,sans-serif;"><span style="font-size:10pt;color:#0000ff;font-family:'Courier New';">class</span><span style="font-size:10pt;font-family:'Courier New';"> <span style="color:#2b91af;">Program<br />
</span></span><span style="font-size:10pt;font-family:'Courier New';">{<br />
</span><span style="font-size:10pt;font-family:'Courier New';"><span>    </span><span style="color:#0000ff;">delegate</span> R <span style="color:#2b91af;">MyDelegate</span>&lt;A, R&gt;(A arg);<br />
</span><span style="font-size:10pt;font-family:'Courier New';"> <br />
</span><span style="font-size:10pt;font-family:'Courier New';"><span>    </span><span style="background:silver;color:#2b91af;">MyDelegate</span><span style="background:silver;">&lt;<span style="color:#0000ff;">int</span>, <span style="color:#0000ff;">bool</span>&gt; IsPositive1 = num =&gt; num &gt; 0;<br />
</span></span></span><span style="font-size:10pt;font-family:Tahoma,sans-serif;"><span style="font-size:10pt;font-family:'Courier New';"><span><br />
    </span><span style="color:#0000ff;">static</span> <span style="color:#0000ff;">void</span> Main(<span style="color:#0000ff;">string</span>[] args)<br />
</span><span style="font-size:10pt;font-family:'Courier New';"><span>    </span>{<br />
</span><span style="font-size:10pt;font-family:'Courier New';"><span>        </span><span style="color:#2b91af;">Program</span> p = <span style="color:#0000ff;">new</span> <span style="color:#2b91af;">Program</span>();<br />
</span><span style="font-size:10pt;font-family:'Courier New';"><span>        </span><span style="color:#2b91af;">Console</span>.WriteLine(p.IsPositive(2));<br />
</span><span style="font-size:10pt;font-family:'Courier New';"><span>        </span><span style="color:#2b91af;">Console</span>.WriteLine(p.IsPositive(-2));<br />
<span>    </span>}<br />
</span><span style="font-size:10pt;font-family:'Courier New';">}</span></span></p>
<p> </p>
<p><span style="font-size:10pt;font-family:Tahoma,sans-serif;"></span><span style="font-size:10pt;font-family:'Courier New';"><span style="font-size:10pt;font-family:Tahoma,sans-serif;"> </span><strong><span style="color:#548dd4;font-family:Arial,sans-serif;"><span>6)<span style="font-family:'Times New Roman';">      </span></span></span></strong><span style="color:#548dd4;font-family:Arial,sans-serif;">الإجرائيات المضافة </span><span style="color:#548dd4;font-family:Arial,sans-serif;">Extension Methods</span><span style="color:#548dd4;font-family:Arial,sans-serif;">:</span></span><span style="font-size:10pt;font-family:'Courier New';"> </span></p>
<p><span style="font-size:10pt;font-family:'Courier New';"><span style="font-family:Arial,sans-serif;">ماذا يعني هذا الكلام –وياعيني على هالكلام- لو طلبت منك أن تنشىء لي تابع يقوم بالتحقق من عنوان ايميل هل هو صحيح أم لا، -مافي أسهل من هذا الطلب باستخدام التعابير النظامية- تكتب التابع التالي:</span></span></p>
<p><span style="font-size:10pt;font-family:'Courier New';"> </p>
<p></span>
</p>
<p dir="ltr" align="left"><span style="font-size:10pt;font-family:Tahoma,sans-serif;"> </span><span style="font-size:10pt;color:#0000ff;font-family:'Courier New';">public</span><span style="font-size:10pt;font-family:'Courier New';"> <span style="color:#0000ff;">static</span> <span style="color:#0000ff;">class</span> <span style="color:#2b91af;">StringExtenstion<br />
</span></span><span style="font-size:10pt;font-family:'Courier New';">{<br />
</span><span style="font-size:10pt;font-family:'Courier New';"><span>    </span><span style="color:#0000ff;">public</span> <span style="color:#0000ff;">static</span> <span style="color:#0000ff;">bool</span> IsValidEmailAddress(<span style="color:#0000ff;">string</span> s)<br />
</span><span style="font-size:10pt;font-family:'Courier New';"><span>    </span>{<br />
</span><span style="font-size:10pt;font-family:'Courier New';"><span>        </span><span style="color:#2b91af;">Regex</span> regex =<br />
</span><span style="font-size:10pt;color:#0000ff;font-family:'Courier New';"><span>            </span>new</span><span style="font-size:10pt;font-family:'Courier New';"> <span style="color:#2b91af;">Regex</span>(<span style="color:#a31515;">@&#8221;\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*&#8221;</span>);<br />
</span><span style="font-size:10pt;font-family:'Courier New';"><span> <br />
       </span><span style="color:#0000ff;">return</span> regex.IsMatch(s);<br />
</span><span style="font-size:10pt;font-family:'Courier New';"><span>    </span>}<br />
</span><span style="font-size:10pt;font-family:'Courier New';">}<br />
</span><span style="font-size:10pt;font-family:'Courier New';"> <br />
</span><span style="font-size:10pt;color:#0000ff;font-family:'Courier New';">class</span><span style="font-size:10pt;font-family:'Courier New';"> <span style="color:#2b91af;">Program<br />
</span></span><span style="font-size:10pt;font-family:'Courier New';">{<br />
<span>    </span></span><span style="font-size:10pt;font-family:'Courier New';"><span style="color:#0000ff;">static</span> <span style="color:#0000ff;">void</span> Main(<span style="color:#0000ff;">string</span>[] args)<br />
</span><span style="font-size:10pt;font-family:'Courier New';"><span>    </span>{<br />
</span><span style="font-size:10pt;font-family:'Courier New';"> </span><span style="font-size:10pt;font-family:'Courier New';"><span>       </span><span style="color:#0000ff;">string</span> email = &#8220;<span style="color:#a31515;"><a href="mailto:Abdulkarim.Kanaan@gmail.com">Abdulkarim.Kanaan@gmail.com</a>&#8220;</span>;<br />
</span><span style="font-size:10pt;font-family:'Courier New';"><span>        </span><span style="color:#0000ff;">bool</span> isValidate = <span style="color:#2b91af;">StringExtenstion</span>.IsValidEmailAddress(email);<br />
</span><span style="font-size:10pt;font-family:'Courier New';"> <br />
</span><span style="font-size:10pt;font-family:'Courier New';"><span>        </span><span style="color:#2b91af;">Console</span>.WriteLine(isValidate);<br />
</span><span style="font-size:10pt;font-family:'Courier New';"><span>    </span>}<br />
</span><span style="font-size:10pt;font-family:'Courier New';">}</span></p>
<p><span style="font-size:10pt;font-family:Tahoma,sans-serif;"> </span><span style="font-family:Arial,sans-serif;">ولكن لو أخبرتك بأني أود أن أن يكون تابعا عاما لكل سلسلة نصية، مثل توابع السلاسل النصية العامة </span><span style="font-family:Arial,sans-serif;">ToString()</span><span style="font-family:Arial,sans-serif;"> </span><span style="font-family:Arial,sans-serif;">و </span><span style="font-family:Arial,sans-serif;">ToTrim()</span><span style="font-family:Arial,sans-serif;"> </span><span style="font-family:Arial,sans-serif;">و </span><span style="font-family:Arial,sans-serif;">ToCharArray()</span><span style="font-family:Arial,sans-serif;"> و &#8230;، فربما ستقول لي هذا غير ممكن ولكن عندها سأقول لك أن هذا قد أصبح ممكنا وذلك فقط بإضافة كلمة واحدة قبل البرامتر </span><span style="font-family:Arial,sans-serif;">s</span><span style="font-family:Arial,sans-serif;"> في التابع </span><span style="font-family:Arial,sans-serif;">IsValidEmailAddress</span><span style="font-family:Arial,sans-serif;"> <span>تأمل الشيفرة التالية:</span></span>
</p>
<p dir="ltr" align="left"><span style="font-family:Arial,sans-serif;"></span><span style="font-size:10pt;font-family:Tahoma,sans-serif;"> </span><span style="font-size:10pt;color:#0000ff;font-family:'Courier New';">public</span><span style="font-size:10pt;font-family:'Courier New';"> <span style="color:#0000ff;">static</span> <span style="color:#0000ff;">class</span> <span style="color:#2b91af;">StringExtenstion<br />
</span></span><span style="font-size:10pt;font-family:'Courier New';">{<br />
</span><span style="font-size:10pt;font-family:'Courier New';"><span>    </span><span style="color:#0000ff;">public</span> <span style="color:#0000ff;">static</span> <span style="color:#0000ff;">bool</span> IsValidEmailAddress(<span style="background:silver;color:#0000ff;">this</span><span style="color:#0000ff;"> string</span> s)<br />
</span><span style="font-size:10pt;font-family:'Courier New';"><span>    </span>{<br />
</span><span style="font-size:10pt;font-family:'Courier New';"><span>        </span><span style="color:#2b91af;">Regex</span> regex =<br />
</span><span style="font-size:10pt;color:#0000ff;font-family:'Courier New';"><span>            </span>new</span><span style="font-size:10pt;font-family:'Courier New';"> <span style="color:#2b91af;">Regex</span>(<span style="color:#a31515;">@&#8221;\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*&#8221;</span>);<br />
</span><span style="font-size:10pt;font-family:'Courier New';"><span> <br />
       </span><span style="color:#0000ff;">return</span> regex.IsMatch(s);<br />
</span><span style="font-size:10pt;font-family:'Courier New';"><span>    </span>}<br />
</span><span style="font-size:10pt;font-family:'Courier New';">}<br />
</span><span style="font-size:10pt;font-family:'Courier New';"> <br />
</span><span style="font-size:10pt;color:#0000ff;font-family:'Courier New';">class</span><span style="font-size:10pt;font-family:'Courier New';"> <span style="color:#2b91af;">Program<br />
</span></span><span style="font-size:10pt;font-family:'Courier New';">{<br />
<span>    </span></span><span style="font-size:10pt;font-family:'Courier New';"><span style="color:#0000ff;">static</span> <span style="color:#0000ff;">void</span> Main(<span style="color:#0000ff;">string</span>[] args)<br />
</span><span style="font-size:10pt;font-family:'Courier New';"><span>    </span>{<br />
</span><span style="font-size:10pt;font-family:'Courier New';"> </span><span style="font-size:10pt;font-family:'Courier New';"><span>       </span><span style="color:#0000ff;">string</span> email = &#8220;<span style="color:#a31515;"><a href="mailto:Abdulkarim.Kanaan@gmail.com">Abdulkarim.Kanaan@gmail.com</a>&#8220;</span>;<br />
</span><span style="font-size:10pt;font-family:'Courier New';"><span>        </span><span style="color:#0000ff;">bool</span> isValidate = <span style="color:#2b91af;">StringExtenstion</span>.IsValidEmailAddress(email);<br />
</span><span style="font-size:10pt;font-family:'Courier New';"> <br />
</span><span style="font-size:10pt;font-family:'Courier New';"><span>        </span><span style="color:#2b91af;">Console</span>.WriteLine(isValidate);<br />
</span><span style="font-size:10pt;font-family:'Courier New';"><span style="font-size:10pt;font-family:'Courier New';"><span>        </span><span style="background:silver;color:#2b91af;">Console</span><span style="background:silver;">.WriteLine(email.IsValidEmailAddress());<br />
</span></span><span style="font-size:10pt;font-family:'Courier New';"><span>    </span>}<br />
</span><span style="font-size:10pt;font-family:'Courier New';"> </span></span><span style="font-size:10pt;font-family:'Courier New';"><span style="font-size:10pt;font-family:'Courier New';">}</span></span><span style="font-size:10pt;font-family:'Courier New';"> </span></p>
<p><span style="font-size:10pt;font-family:'Courier New';"><br />
</span><span style="font-size:10pt;font-family:'Courier New';"><span style="font-size:10pt;font-family:Tahoma,sans-serif;"> </span><span style="font-size:10pt;font-family:Tahoma,sans-serif;">ياللهول؟!</span></span><span style="font-size:10pt;font-family:'Courier New';"> </span><span style="font-size:10pt;font-family:'Courier New';"><span style="font-size:10pt;font-family:Tahoma,sans-serif;"> </span><strong><span style="color:#548dd4;font-family:Arial,sans-serif;"><span>7)<span style="font-family:'Times New Roman';">      </span></span></span></strong><span style="color:#548dd4;font-family:Arial,sans-serif;">صيغ الاستعلام </span><span style="color:#548dd4;font-family:Arial,sans-serif;">Query Syntax</span><span style="color:#548dd4;font-family:Arial,sans-serif;">:</span></span><span style="font-size:10pt;font-family:'Courier New';"><span style="font-family:Arial,sans-serif;">ربما عندما تقرأ هذا العنوان سيخيل لك أنني سأتحدث عن </span><span style="font-family:Arial,sans-serif;">SQL</span><span style="font-family:Arial,sans-serif;">، ولكن دعني أقل لك أنك قد أخطأت ما سأتحدث عنه بشكل مختصر هو ما يعرف </span><span style="font-family:Arial,sans-serif;">LINQ</span><span style="font-family:Arial,sans-serif;"> إختصار لـ </span><span style="font-family:Arial,sans-serif;"><span> </span>Langauge Integrated Query</span><span style="font-family:Arial,sans-serif;">–ممكن أن يكون هناك مقالة أخرى توضح هذه الميزة بشكل أوسع- ، لأبسط لك الأمور بأبسط شكل ممكن، لو أخبرتك بأن لدي مصفوفة من سلاسل نصية تمثل أسماء أصدقائي و أود أن أستخرج جميع الأسماء التي تبدأ بحرف </span><span style="font-family:Arial,sans-serif;">&#8216;F&#8217;</span><span style="font-family:Arial,sans-serif;">، فربما تقول بسيطة نعمل حلقة ونفحص إذا كانت بداية الاسم تبدأ بهذا الحرف وانتهت القصة، ولكن لو علمت ما في وراء هذا العنوان لعلمت أن ما تعمله هو قصة بحد ذاته، ولكن مع استخدام تقنية </span><span style="font-family:Arial,sans-serif;">LINQ</span><span style="font-family:Arial,sans-serif;"> سيكون عمل المطلوب من أبسط مل يكون، تأمل الشيفرة التالية يارعاك الله:</span></span>
</p>
<p dir="ltr" align="left"><span style="font-size:10pt;font-family:Tahoma,sans-serif;"> </span><span style="font-size:10pt;color:#0000ff;font-family:'Courier New';">static</span><span style="font-size:10pt;font-family:'Courier New';"> <span style="color:#0000ff;">void</span> Main(<span style="color:#0000ff;">string</span>[] args)<br />
</span><span style="font-size:10pt;font-family:'Courier New';">{<br />
</span><span style="font-size:10pt;font-family:'Courier New';"><span>    </span><span style="color:#0000ff;">string</span>[] frindNames = <span style="color:#0000ff;">new</span> <span style="color:#0000ff;">string</span>[] {<br />
</span><span style="font-size:10pt;font-family:'Courier New';"><span>        </span><span style="color:#a31515;">&#8220;Fadi&#8221;</span>,<br />
</span><span style="font-size:10pt;font-family:'Courier New';"><span>        </span><span style="color:#a31515;">&#8220;Ahmad&#8221;</span>,<br />
</span><span style="font-size:10pt;font-family:'Courier New';"><span>        </span><span style="color:#a31515;">&#8220;Rami&#8221;</span>,<br />
</span><span style="font-size:10pt;font-family:'Courier New';"><span>        </span><span style="color:#a31515;">&#8220;Fofo&#8221;</span>,<br />
</span><span style="font-size:10pt;font-family:'Courier New';"><span>        </span><span style="color:#a31515;">&#8220;Toto&#8221;</span>};<br />
</span><span style="font-size:10pt;font-family:'Courier New';"> <br />
</span><span style="font-size:10pt;font-family:'Courier New';"><span>    </span><span style="color:#0000ff;">var</span> names = <span style="color:#0000ff;">from</span> f <span style="color:#0000ff;">in</span> frindNames<br />
</span><span style="font-size:10pt;font-family:'Courier New';"><span>                </span><span style="color:#0000ff;">where</span> f.StartsWith(<span style="color:#a31515;">&#8220;F&#8221;</span>)<br />
</span><span style="font-size:10pt;font-family:'Courier New';"><span>               </span><span> </span><span style="color:#0000ff;">select</span> f;<br />
</span><span style="font-size:10pt;font-family:'Courier New';"> <br />
</span><span style="font-size:10pt;font-family:'Courier New';"><span>    </span><span style="color:#0000ff;">foreach</span> (<span style="color:#0000ff;">string</span> n <span style="color:#0000ff;">in</span> names)<br />
</span><span style="font-size:10pt;font-family:'Courier New';"><span>    </span>{<br />
</span><span style="font-size:10pt;font-family:'Courier New';"><span>    </span><span>    </span><span style="color:#2b91af;">Console</span>.WriteLine(n);<br />
</span><span style="font-size:10pt;font-family:'Courier New';"><span>    </span>}<br />
</span><span style="font-size:10pt;font-family:'Courier New';">}</span></p>
<p><span style="font-size:10pt;font-family:Tahoma,sans-serif;"> </span><span style="font-size:10pt;font-family:Tahoma,sans-serif;">سيكون الناتج: </span><span style="font-size:10pt;font-family:Tahoma,sans-serif;"> </span><span style="font-size:10pt;font-family:Tahoma,sans-serif;"> </span><span style="font-family:Arial,sans-serif;">أليس هذا غاية في الجمال والسهولة، طبعا الشيئ الجديد يكمن في الشيفرة:</span>
</p>
<p dir="ltr" align="left"><span style="font-size:10pt;font-family:Tahoma,sans-serif;"> </span><span style="font-size:10pt;color:#0000ff;font-family:'Courier New';"><span>    </span>var</span><span style="font-size:10pt;font-family:'Courier New';"> names = <span style="color:#0000ff;">from</span> f <span style="color:#0000ff;">in</span> frindNames<br />
</span><span style="font-size:10pt;font-family:'Courier New';"><span>                </span><span style="color:#0000ff;">where</span> f.StartsWith(<span style="color:#a31515;">&#8220;F&#8221;</span>)<br />
</span><span style="font-size:10pt;font-family:'Courier New';"><span>                </span><span style="color:#0000ff;">select</span> f;</span></p>
<p><span style="font-size:10pt;font-family:Tahoma,sans-serif;"> </span><span style="font-family:Arial,sans-serif;">هو ما أجريناه شيئ يشبه الاستعلام حيث </span><span style="font-family:Arial,sans-serif;">f</span><span style="font-family:Arial,sans-serif;"> تمثل كل اسم من الأسماء السابقة من المصفوفة </span><span style="font-family:Arial,sans-serif;">frindNames</span><span style="font-family:Arial,sans-serif;"> حيث شرطنا أن تكون هذه الأسماء تبتدئ بالحرف </span><span style="font-family:Arial,sans-serif;">&#8220;F&#8221;</span><span style="font-family:Arial,sans-serif;"> من خلال التابع </span><span style="font-family:Arial,sans-serif;">StartsWith</span><span style="font-family:Arial,sans-serif;">.</span></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/kanaan85.wordpress.com/48/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/kanaan85.wordpress.com/48/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/kanaan85.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/kanaan85.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/kanaan85.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/kanaan85.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/kanaan85.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/kanaan85.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/kanaan85.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/kanaan85.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/kanaan85.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/kanaan85.wordpress.com/48/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kanaan85.wordpress.com&blog=2943185&post=48&subd=kanaan85&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://kanaan85.wordpress.com/2008/03/07/%d8%aa%d8%b9%d8%b1%d9%81-%d8%b9%d9%84%d9%89-%d8%a8%d8%b9%d8%b6-%d9%85%d9%8a%d8%b2%d8%a7%d8%aa-microsoft-framework-35/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fc9fb0a128c9a23601091f1e32f664ec?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">كنعان</media:title>
		</media:content>
	</item>
		<item>
		<title>كيفية بناء تطبيقات MDI (Multiple-Document Interface) Application !!</title>
		<link>http://kanaan85.wordpress.com/2008/03/03/mdi-application/</link>
		<comments>http://kanaan85.wordpress.com/2008/03/03/mdi-application/#comments</comments>
		<pubDate>Mon, 03 Mar 2008 06:28:14 +0000</pubDate>
		<dc:creator>عبد الكريم كنعان</dc:creator>
				<category><![CDATA[تطبيقات ويندوز]]></category>
		<category><![CDATA[MDI Application]]></category>

		<guid isPermaLink="false">http://kanaan85.wordpress.com/?p=42</guid>
		<description><![CDATA[هل أردت يوما ان تقوم ببناء تطبيق تكون فيه النوافذ داخل نافذة رئيسية في البرنامج، هذا ما سنتعرف عليه في هذه المقالة، فدعنا نبدأ سوية من اتمام هذا الأمر.دعنا في البداية نقوم بانشاء برنامج من نوع Windows Application، سيظهر لك واجهة وحيدة هي Form1، دعنا نغير اسمها إلى MainForm، وبعدها قم بإنشاء فورم جديدة دعنا [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kanaan85.wordpress.com&blog=2943185&post=42&subd=kanaan85&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><span style="font-family:Arial,sans-serif;"><a title="23.jpg" rel="attachment wp-att-37" href="http://kanaan85.wordpress.com/2008/03/03/mdi-application/attachment/37/"></a><a title="25.jpg" rel="attachment wp-att-39" href="http://kanaan85.wordpress.com/2008/03/03/mdi-application/attachment/39/"></a>هل أردت يوما ان تقوم ببناء تطبيق تكون فيه النوافذ داخل نافذة رئيسية في البرنامج، هذا ما سنتعرف عليه في هذه المقالة، فدعنا نبدأ سوية من اتمام هذا الأمر.</span><span style="font-family:Arial,sans-serif;">دعنا في البداية نقوم بانشاء برنامج من نوع </span><span style="font-family:Calibri;"><span dir="ltr">Windows Application</span></span><span style="font-family:Arial,sans-serif;">، سيظهر لك واجهة وحيدة هي </span><span style="font-family:Calibri;"><span dir="ltr">Form1</span></span><span style="font-family:Arial,sans-serif;">، دعنا نغير اسمها إلى </span><span style="font-family:Calibri;"><span dir="ltr">MainForm</span></span><span style="font-family:Arial,sans-serif;">، وبعدها قم بإنشاء فورم جديدة دعنا نسميها </span><span style="font-family:Calibri;"><span dir="ltr">Child1</span></span><span style="font-family:Arial,sans-serif;">، والان ما سنفعله أننا سوف نجعل الفورم الابن الجديدة المضافة عند فتحها سوف تظهر داخل الواجهة الرئيسية.</span></p>
<p><span style="font-family:Arial,sans-serif;"><span style="font-family:Arial,sans-serif;"><a title="23.jpg" rel="attachment wp-att-37" href="http://kanaan85.wordpress.com/2008/03/03/mdi-application/attachment/37/"></a><a title="25.jpg" rel="attachment wp-att-39" href="http://kanaan85.wordpress.com/2008/03/03/mdi-application/attachment/39/"></a><a title="27.jpg" rel="attachment wp-att-41" href="http://kanaan85.wordpress.com/2008/03/03/mdi-application/attachment/41/"></a></span></span></p>
<div><span style="font-family:Arial,sans-serif;"><span style="font-family:Arial,sans-serif;"></span></span></p>
<p style="text-align:center;">
<div style="text-align:center;"><span style="font-family:Arial,sans-serif;"><span style="font-family:Arial,sans-serif;"><img src="http://kanaan85.files.wordpress.com/2008/03/27.jpg" alt="MDI 8.jpg" /><a title="27.jpg" rel="attachment wp-att-41" href="http://kanaan85.wordpress.com/2008/03/03/mdi-application/attachment/41/"></a> </span></span></div>
<p><span style="font-family:Arial,sans-serif;"><span style="font-family:Arial,sans-serif;"> </p>
<p></span></span>
</p>
<p class="MsoNormal" style="margin:0 0 10pt;" dir="rtl"><span style="font-family:Arial,sans-serif;"> <span id="more-42"></span></span></p>
<p class="MsoNormal" style="margin:0 0 10pt;" dir="rtl"><span style="font-family:Arial,sans-serif;">والان ما علينا فعله دعنا نقوم بإضافة شريط القوائم </span><span style="font-family:Calibri;"><span dir="ltr">MenuStrip</span></span><span style="font-family:Arial,sans-serif;"> من شريط الأدوات، وقم بتعديلها لتصبح على النحو التالي:</span></p>
<p class="MsoNormal" style="margin:0 0 10pt;" dir="rtl">
<div></div>
<p><span style="font-family:Arial,sans-serif;"></p>
<div style="text-align:center;"><img src="http://kanaan85.files.wordpress.com/2008/03/19.jpg" alt="MDI 0.jpg" /></div>
<p> </p>
<p> </p>
<p></span><span style="font-family:Arial,sans-serif;"><span style="font-family:Arial,sans-serif;">والان:</span></span></p>
<p><span style="font-family:Arial,sans-serif;"><span><span><span style="font-family:Calibri;">1.</span><span style="font-family:'Times New Roman';">      </span></span></span><span style="font-family:Arial,sans-serif;">في الواجهة </span><span style="font-family:Calibri;"><span dir="ltr">Main Form</span></span><span style="font-family:Arial,sans-serif;"> إذهب إلى الخصائص وابحث عن الخاصية </span><span style="font-family:Calibri;"><span dir="ltr">IsMdiContainer</span></span><span style="font-family:Arial,sans-serif;"> وحول قيمتها من </span><span style="font-family:Calibri;"><span dir="ltr">False</span></span><span style="font-family:Arial,sans-serif;"> إلى </span><span style="font-family:Calibri;"><span dir="ltr">True</span></span><span style="font-family:Arial,sans-serif;">.</span></span></p>
<p><span style="font-family:Arial,sans-serif;"><span><span><span style="font-family:Calibri;">2.</span><span style="font-family:'Times New Roman';">      </span></span></span><span style="font-family:Arial,sans-serif;">إذهب إلى القائمة </span><span style="font-family:Calibri;"><span dir="ltr">Childrens</span></span><span style="font-family:Arial,sans-serif;"> التي اضفناها سابقا وانقر نقرا مزدوجا على الخيار </span><span style="font-family:Calibri;"><span dir="ltr">Child1</span></span><span style="font-family:Arial,sans-serif;">، ليتم تفعيل الحدث </span><span style="font-family:Calibri;"><span dir="ltr">Click</span></span><span style="font-family:Arial,sans-serif;"> لها.</span></span></p>
<p><span style="font-family:Arial,sans-serif;"><span><span><span style="font-family:Calibri;">3.</span><span style="font-family:'Times New Roman';">      </span></span></span><span style="font-family:Arial,sans-serif;">قم بكتابة الكود التالي:</span></span>
</p>
<p dir="ltr" align="left"><span style="font-family:Arial,sans-serif;"><span style="font-size:10pt;color:#0000ff;font-family:'Courier New';">private</span><span style="font-size:10pt;font-family:'Courier New';"> <span style="color:#0000ff;">void</span> child1ToolStripMenuItem_Click(<span style="color:#0000ff;">object</span> sender, <span style="color:#2b91af;">EventArgs</span> e)<br />
</span><span style="font-size:10pt;font-family:'Courier New';">{<br />
</span><span style="font-size:10pt;font-family:'Courier New';"><span>    </span><span style="color:#2b91af;">Child1</span> child = <span style="color:#0000ff;">new</span> <span style="color:#2b91af;">Child1</span>();<br />
</span><span style="font-size:10pt;font-family:'Courier New';"><span>    </span>child.MdiParent = <span style="color:#0000ff;">this</span>;<br />
</span><span style="font-size:10pt;font-family:'Courier New';"><span>    </span>child.Show();<br />
</span><span style="font-size:10pt;line-height:115%;font-family:'Courier New';">}</span></span></p>
<p><span style="font-family:Arial,sans-serif;"><span style="font-family:Arial,sans-serif;">والان شغل البرنامج واطلب أمر فتح النافذة الابن الأولى، لتظهر لك الواجهة التالية:</span></span></p>
<p> </p>
<div></div>
<p><span style="font-family:Arial,sans-serif;"></p>
<div style="text-align:center;"><img src="http://kanaan85.files.wordpress.com/2008/03/20.jpg" alt="MDI 1.jpg" /></div>
<p> </p>
<p><span style="font-family:Arial,sans-serif;"><span style="font-family:Arial,sans-serif;">طبعا في الكود السابق كل ما قمت بعمله هو التصريح عن كائن اسنه </span><span style="font-family:Calibri;"><span dir="ltr">child</span></span><span style="font-family:Arial,sans-serif;"> من الصف </span><span style="font-family:Calibri;"><span dir="ltr">Child1</span></span><span style="font-family:Arial,sans-serif;"> من خلال التعليمة:</span></span></p>
<p> </p>
<p> </p>
<p></span>
</p>
<p dir="ltr" align="left"><span style="font-family:Arial,sans-serif;"><span style="font-size:10pt;color:#2b91af;line-height:115%;font-family:'Courier New';">Child1</span><span style="font-size:10pt;line-height:115%;font-family:'Courier New';"> child = <span style="color:#0000ff;">new</span> <span style="color:#2b91af;">Child1</span>();</span></span></p>
<p><span style="font-family:Arial,sans-serif;"><span style="font-family:Arial,sans-serif;">ثم قمنا بإعلام هذا الابن إلى الاب الذي يتبع له من خلال السطر التالي:</span></span></p>
<p dir="ltr" align="left"><span style="font-family:Arial,sans-serif;"><span style="font-size:10pt;font-family:'Courier New';">child.MdiParent = <span style="color:#0000ff;">this</span>;</span></span></p>
<p><span style="font-family:Arial,sans-serif;"><span style="font-family:Arial,sans-serif;">طبعا </span><span style="font-family:Calibri;"><span dir="ltr">this</span></span><span style="font-family:Arial,sans-serif;"> تمثل الكائن من الصف الذي تنتمي له وهو هنا </span><span style="font-family:Calibri;"><span dir="ltr">MainForm</span></span><span style="font-family:Arial,sans-serif;">، بقي أمر أخير هو أظهار هذه النافذة من خلال التعليمة:</span></span></p>
<p dir="ltr" align="left"><span style="font-family:Arial,sans-serif;"><span style="font-size:10pt;line-height:115%;font-family:'Courier New';">child.Show();</span><span style="font-family:Arial,sans-serif;"> </span></span><span style="font-family:Arial,sans-serif;"> </span><span style="font-family:Arial,sans-serif;"><span style="font-size:11pt;line-height:115%;font-family:Arial,sans-serif;"> </span></span></p>
<div><span style="font-family:Arial,sans-serif;"><span style="font-size:11pt;line-height:115%;font-family:Arial,sans-serif;"><span style="font-family:Arial,sans-serif;">والان لم ننتهي بعد دعنا نكرر العمليات السابقة من أجل واجهة جديدة تدعى </span><span style="font-family:Calibri;"><span dir="ltr">Child2</span></span><span style="font-family:Arial,sans-serif;">، لتصبح الواجهة على النحو التالي:</span></span></span></div>
<div><span style="font-family:Arial,sans-serif;"></span></div>
<p><span style="font-family:Arial,sans-serif;"><span style="font-size:11pt;line-height:115%;font-family:Arial,sans-serif;"></p>
<div style="text-align:center;"><img src="http://kanaan85.files.wordpress.com/2008/03/21.jpg" alt="MDI 2.jpg" /></div>
<p> </p>
<p> </p>
<p></span></p>
<p class="MsoNormal" style="margin:0 0 10pt;" dir="rtl"> </p>
<div></div>
<p><span style="font-size:11pt;line-height:115%;font-family:Arial,sans-serif;"></p>
<p class="MsoNormal" style="margin:0 0 10pt;" dir="rtl"><span style="font-family:Arial,sans-serif;">والان دعنا نضيف إلى القائمة </span><span style="font-family:Calibri;"><span dir="ltr">Children</span></span><span style="font-family:Arial,sans-serif;"> الخيار التالي، </span><span style="font-family:Calibri;"><span dir="ltr">Get Name Of Active Child</span></span><span style="font-family:Arial,sans-serif;"> اي اظهار اسم الواجهة المفعلة حاليا في </span><span style="font-family:Calibri;"><span dir="ltr">MessageBox</span></span><span style="font-family:Arial,sans-serif;">، الغاية من هذه العملية معرفة كيفية تحديد الواجهة المفعلة الان لاحظ الشكل التالي:</span></p>
<p class="MsoNormal" style="margin:0 0 10pt;" dir="rtl"> </p>
<p class="MsoNormal" style="margin:0 0 10pt;" dir="rtl">
<div></div>
<p><span style="font-family:Arial,sans-serif;"></p>
<div style="text-align:center;"><img src="http://kanaan85.files.wordpress.com/2008/03/22.jpg" alt="MDI 3.jpg" /></div>
<p> </p>
<p> </p>
<p></span>
</p>
<p class="MsoNormal" style="margin:0 0 10pt;" dir="rtl"> </p>
<p><span style="font-family:Arial,sans-serif;"><span style="font-family:Arial,sans-serif;">والان قم بكتابة الكود التالي في الحدث الخاص بالخيار السابق:</span></span></p>
<p dir="ltr" align="left"><span style="font-family:Arial,sans-serif;"><span style="font-size:10pt;color:#0000ff;font-family:'Courier New';">private</span><span style="font-size:10pt;font-family:'Courier New';"> <span style="color:#0000ff;">void</span> getNameOfChildToolStripMenuItem_Click(<span style="color:#0000ff;">object</span> sender, <span style="color:#2b91af;">EventArgs</span> e)<br />
</span><span style="font-size:10pt;font-family:'Courier New';">{<br />
</span><span style="font-size:10pt;font-family:'Courier New';"><span>    </span><span style="color:#2b91af;">Form</span> frm = <span style="color:#0000ff;">this</span>.ActiveMdiChild;<br />
</span><span style="font-size:10pt;font-family:'Courier New';"><span>    </span><span style="color:#2b91af;">MessageBox</span>.Show(frm.Text);<br />
</span></span><span style="font-family:Arial,sans-serif;"><span style="font-size:10pt;line-height:115%;font-family:'Courier New';">}</span></span></p>
<p><span style="font-family:Arial,sans-serif;"><span style="font-family:Arial,sans-serif;">والان دعنا نقوم بإضافة أمر آخر وهوترتيب هذه الواجهات عندما تكون مفتوحة، حتى نستطيع عمل ذلك دعنا نضيف قائمة تدعى </span><span style="font-family:Calibri;"><span dir="ltr">Arrange</span></span><span style="font-family:Arial,sans-serif;"> وإضافة الاوامر التالي إليها لاحظ الشكل التالي:</span></span><span style="font-family:Arial,sans-serif;"> </span></p>
<div></div>
<p><span style="font-family:Arial,sans-serif;"></p>
<div style="text-align:center;"><img src="http://kanaan85.files.wordpress.com/2008/03/23.jpg" alt="MDI 4.jpg" /></div>
<p class="MsoNormal" style="margin:0 0 10pt;" dir="rtl"> </p>
<p><span style="font-family:Arial,sans-serif;">والان دعنا نبدأ بالخيار </span><span style="font-family:Calibri;"><span dir="ltr">Horizontal</span></span><span style="font-family:Arial,sans-serif;">، انقر عليها نقرا مزدوجا واكتب الكود التالي:</span></p>
<p dir="ltr" align="left"><span style="font-size:10pt;color:#0000ff;font-family:'Courier New';">private</span><span style="font-size:10pt;font-family:'Courier New';"> <span style="color:#0000ff;">void</span> horizontalToolStripMenuItem_Click(<span style="color:#0000ff;">object</span> sender, <span style="color:#2b91af;">EventArgs</span> e)<br />
</span><span style="font-size:10pt;font-family:'Courier New';">{<br />
</span><span style="font-size:10pt;font-family:'Courier New';"><span>    </span><span style="color:#0000ff;">this</span>.LayoutMdi(<span style="color:#2b91af;">MdiLayout</span>.TileHorizontal);<br />
</span><span style="font-size:10pt;line-height:115%;font-family:'Courier New';">}</span></p>
<p><span style="font-family:Arial,sans-serif;">وكذلك الأمر بالنسة للـ </span><span style="font-family:Calibri;"><span dir="ltr">Vertical</span></span><span style="font-family:Arial,sans-serif;">:</span>
</p>
<p dir="ltr" align="left"><span style="font-size:10pt;color:#0000ff;font-family:'Courier New';">private</span><span style="font-size:10pt;font-family:'Courier New';"> <span style="color:#0000ff;">void</span> verticalToolStripMenuItem_Click(<span style="color:#0000ff;">object</span> sender, <span style="color:#2b91af;">EventArgs</span> e)<br />
</span><span style="font-size:10pt;font-family:'Courier New';">{<br />
</span><span style="font-size:10pt;font-family:'Courier New';"><span>    </span><span style="color:#0000ff;">this</span>.LayoutMdi(<span style="color:#2b91af;">MdiLayout</span>.TileVertical);<br />
</span><span style="font-size:10pt;line-height:115%;font-family:'Courier New';">}</span></p>
<p><span style="font-family:Arial,sans-serif;">وأخيرا </span><span style="font-family:Calibri;"><span dir="ltr">C</span></span><span style="font-family:Calibri;"><span dir="ltr">ascade</span></span><span style="font-family:Arial,sans-serif;">:</span>
</p>
<p dir="ltr" align="left"><span style="font-size:10pt;color:#0000ff;font-family:'Courier New';">private</span><span style="font-size:10pt;font-family:'Courier New';"> <span style="color:#0000ff;">void</span> cascadeToolStripMenuItem_Click(<span style="color:#0000ff;">object</span> sender, <span style="color:#2b91af;">EventArgs</span> e)<br />
</span><span style="font-size:10pt;font-family:'Courier New';">{<br />
</span><span style="font-size:10pt;font-family:'Courier New';"><span>    </span><span style="color:#0000ff;">this</span>.LayoutMdi(<span style="color:#2b91af;">MdiLayout</span>.Cascade);<br />
</span><span style="font-size:10pt;line-height:115%;font-family:'Courier New';">}</span></p>
<p><span style="font-family:Arial,sans-serif;">وقم بتجربة البرنامج ولاحظ الأشكال التالية:</span>
</p>
<p class="MsoNormal" style="margin:0 0 10pt;" dir="rtl"> </p>
<p><span style="font-family:Arial,sans-serif;"><a title="24.jpg" rel="attachment wp-att-38" href="http://kanaan85.wordpress.com/2008/03/03/mdi-application/attachment/38/"></a></span><span style="font-family:Arial,sans-serif;"><a title="24.jpg" rel="attachment wp-att-38" href="http://kanaan85.wordpress.com/2008/03/03/mdi-application/attachment/38/"></a></span></p>
<p> </p>
<p></span></p>
<div></div>
<p><span style="font-family:Arial,sans-serif;"></p>
<div style="text-align:center;"><img src="http://kanaan85.files.wordpress.com/2008/03/24.jpg" alt="MDI 5.jpg" /><br />
<span style="font-family:Arial,sans-serif;"><img src="http://kanaan85.files.wordpress.com/2008/03/25.jpg" alt="MDI 6.jpg" /></span></div>
<div></div>
<p></span><span style="font-family:Arial,sans-serif;"></p>
<p class="MsoNormal" style="margin:0 0 10pt;" dir="rtl"> </p>
<p class="MsoNormal" style="margin:0 0 10pt;" dir="rtl"><span style="font-family:Arial,sans-serif;">بقي شيء أخير هو اضافة قائمة تدعى </span><span style="font-family:Calibri;"><span dir="ltr">Window</span></span><span style="font-family:Arial,sans-serif;"> منخلالها سيتم إظهار النوافذ المفتوحة وأي نافذة مفعلة حاليا، لاحظ الشكل التالي:</span></p>
<p class="MsoNormal" style="margin:0 0 10pt;" dir="rtl"> </p>
<p class="MsoNormal" style="margin:0 0 10pt;" dir="rtl">
<div></div>
<p><span style="font-family:Arial,sans-serif;"></p>
<div style="text-align:center;"><img src="http://kanaan85.files.wordpress.com/2008/03/26.jpg" alt="MDI 7.jpg" /></div>
<p> </p>
<p> </p>
<p></span>
</p>
<p class="MsoNormal" style="margin:0 0 10pt;" dir="rtl"> </p>
<div><span style="font-family:Arial,sans-serif;"><span style="font-family:Arial,sans-serif;">والان كل ماعليك فعله هي: بعد أن تحدد القائمة </span><span style="font-family:Calibri;"><span dir="ltr">MenuStrip </span></span><span style="font-family:Arial,sans-serif;"><span> </span>إذهب إلى نافذة الخصائص ومن خلال الخاصة </span><span style="font-family:Calibri;"><span dir="ltr">MdiWindowListItem</span></span><span style="font-family:Arial,sans-serif;"> حدد اسم القائمة التي تود ان يتحقق لها الأمر الذي نريده طبعا سنختار هنا<span>  </span></span><span style="font-family:Calibri;"><span dir="ltr">windowToolStripMenuItem</span></span><span style="font-family:Arial,sans-serif;">، شغل البرنامج ولاحظ الشكل التالي:</span></span></div>
<div></div>
<p><span style="font-family:Arial,sans-serif;"></p>
<div style="text-align:center;"><img src="http://kanaan85.files.wordpress.com/2008/03/27.jpg" alt="MDI 8.jpg" /></div>
<p> </p>
<p><span style="font-family:Arial,sans-serif;">لتحميل مثال الدرس إليك الرابط التالي:<a href="http://www.eclasshome.com/attach/upload3/wh_54743652.zip">http://www.eclasshome.com/attach/upload3/wh_54743652.zip</a></span></p>
<p></span> </p>
<p> </p>
<p></span></p>
<p></span></span></div>
<div><a title="27.jpg" rel="attachment wp-att-41" href="http://kanaan85.wordpress.com/2008/03/03/mdi-application/attachment/41/"></a></div>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/kanaan85.wordpress.com/42/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/kanaan85.wordpress.com/42/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/kanaan85.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/kanaan85.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/kanaan85.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/kanaan85.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/kanaan85.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/kanaan85.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/kanaan85.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/kanaan85.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/kanaan85.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/kanaan85.wordpress.com/42/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kanaan85.wordpress.com&blog=2943185&post=42&subd=kanaan85&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://kanaan85.wordpress.com/2008/03/03/mdi-application/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fc9fb0a128c9a23601091f1e32f664ec?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">كنعان</media:title>
		</media:content>

		<media:content url="http://kanaan85.files.wordpress.com/2008/03/27.jpg" medium="image">
			<media:title type="html">MDI 8.jpg</media:title>
		</media:content>

		<media:content url="http://kanaan85.files.wordpress.com/2008/03/19.jpg" medium="image">
			<media:title type="html">MDI 0.jpg</media:title>
		</media:content>

		<media:content url="http://kanaan85.files.wordpress.com/2008/03/20.jpg" medium="image">
			<media:title type="html">MDI 1.jpg</media:title>
		</media:content>

		<media:content url="http://kanaan85.files.wordpress.com/2008/03/21.jpg" medium="image">
			<media:title type="html">MDI 2.jpg</media:title>
		</media:content>

		<media:content url="http://kanaan85.files.wordpress.com/2008/03/22.jpg" medium="image">
			<media:title type="html">MDI 3.jpg</media:title>
		</media:content>

		<media:content url="http://kanaan85.files.wordpress.com/2008/03/23.jpg" medium="image">
			<media:title type="html">MDI 4.jpg</media:title>
		</media:content>

		<media:content url="http://kanaan85.files.wordpress.com/2008/03/24.jpg" medium="image">
			<media:title type="html">MDI 5.jpg</media:title>
		</media:content>

		<media:content url="http://kanaan85.files.wordpress.com/2008/03/25.jpg" medium="image">
			<media:title type="html">MDI 6.jpg</media:title>
		</media:content>

		<media:content url="http://kanaan85.files.wordpress.com/2008/03/26.jpg" medium="image">
			<media:title type="html">MDI 7.jpg</media:title>
		</media:content>

		<media:content url="http://kanaan85.files.wordpress.com/2008/03/27.jpg" medium="image">
			<media:title type="html">MDI 8.jpg</media:title>
		</media:content>
	</item>
	</channel>
</rss>