Sign in
|
Join
|
Help
שלמה גולדברג (הרב דוטנט)
מרצה בסלע ויועץ בעולם ה - net.
עמוד הבית
טופס יצירת קשר
RSS 2.0
Atom 1.0
RSS-תגובות ב
חפש
תגיות
AddIn
Ajax
ashx
asp net
Asp.Net
Asp.Net Controls
Attribute
authentication
authorization
azure
BI
C#
C# 4.0
Code Plex
config
Context Menu
Cookie
cross browser
CSS
css3
Culture
database
DataReader
DataTable
debug
DEV
dynamic
EF
Encoding
Entity Framework
Extension Method
Facebook
Generic
Hacking
html
html5
HttpHandler
HttpModule
IDCC
iE
IE8
ie9
IIS
iis7
Internet Explorer
internet Explorer 8
internet Explorer 9
ITPRO
JavaScript
jQuery
js
JSON
Linq
meta
mvc
OFFICE
OFFTOPIC
Optional Parameters
PageMethods
PostBack
Power Point
reflection
Reflector
Reporting Services
Resource
SCC
Script Manger
SDP
Sela
Sela College Channel
silverlight
SQL Server
Static
stream
TECH
Teched_il
Telerik
Threading
UnitTest
User Control
UTF-8
Validators
video
Visual Studio
voice
VS2010
VSTO
WCF
Web
Web Service
Web Slice
WebApplication
WebMethod
WebService
Windows
Windows7
WinForms
XMLHTTP
קוד נכון
תפוז
ארכיון
February 2012 (1)
January 2012 (9)
December 2011 (7)
November 2011 (13)
October 2011 (9)
September 2011 (1)
August 2011 (4)
June 2011 (8)
May 2011 (13)
April 2011 (14)
March 2011 (12)
February 2011 (8)
January 2011 (18)
December 2010 (10)
November 2010 (16)
October 2010 (11)
September 2010 (9)
August 2010 (21)
July 2010 (12)
June 2010 (11)
May 2010 (21)
April 2010 (19)
March 2010 (14)
February 2010 (17)
January 2010 (13)
December 2009 (16)
November 2009 (10)
October 2009 (12)
September 2009 (22)
August 2009 (9)
July 2009 (14)
June 2009 (19)
May 2009 (17)
April 2009 (9)
March 2009 (11)
February 2009 (10)
January 2009 (16)
December 2008 (23)
November 2008 (11)
ניווט
Home
All Posts
RSS
Popular Tags
Browse by Tags
All Tags
»
C# 4.0
(
RSS
)
C#
DEV
dynamic
Expression Tree
Extension Method
IDCC
Named Parameters
OFFICE
Optional Parameters
VS2010
Add Flag and Remove Flag for enums
24 August 10 03:57 PM
|
Shlomo
|
2 comment(s)
הדרך הקלה לשימוש ב - Enums שמוגדרים עם Flags כשקראתי את הפוסט של עידו על הפונקצייה החדשה של Enum בשם HasFlag לא הבנתי למה הם לא הוסיפו גם Add ו - Remove. חיפוש קצר בגוגל הביא אותי לכאן והנה לנו שני Extensions חדשים לעבודה עם Enum. namespace System { public static class EnumExtension { public static T AddFlag<T>( this Enum type, T value) { return (T)( object )((( int )( object )type | ( int )( object )value)); } public static T RemoveFlag<T>( this Enum type, T value) { return (T)( object...
C# 4.0 - User Group
13 October 09 06:11 PM
|
Shlomo
| with
no comments
מי שלא היה בהרצאה ב - IDCC ולא מעוניין לשמוע את ההרצאה מההקלטה. מוזמן לבוא ל - User Group שבוע הבא ב - 21 לאוקטובר. החלק הראשון במפגש יועבר על ידי פבל ויתמקד ב - First Look at Visual Studio 2010 החלק השני יתמקד ב - First Look at C# 4.0 ויועבר על ידי. אפשר להירשם כאן
מה חדש ב - C# 4.0 - ההרצאה ב - IDCC
19 August 09 11:12 PM
|
Shlomo
| with
no comments
ראיתי שהרבה חברה כתבו על IDCC (כדי שיצביעו להם כמובן) אז ארשה לעצמי גם לכתוב (כדי שתצביעו לי כמובן :)). ההרצאה שלי (אם אבחר) תהיה על מה חדש ב - C# 4.0. יהיו שם גם דברים שלא כתבתי בסדרת הפוסטים - כמו למשל: אחד מהדברים שאי אפשר לעשות באצעות dynamic - זה לגשת ל - private של מחלקות. אנחנו כבר יודעים שמאחורי הקלעים כשכותבים dynamic למעשה הקומפייל מג'נרט קוד עם שימוש במחלקה בשם CSharpBinder, נניח שאנחנו יורשים מהמחלקה הזאת, וכותבים שם קוד שיאפשר לגשת בעזרת dynamic גם למה שמוגדר כ - private, נכון שהחיים...
C# 4.0 - Table Of Content
02 July 09 10:12 PM
|
Shlomo
|
7 comment(s)
נראה לי שדי סיכמתי את החידושים ב - C# 4.0, אמנם יש עוד כמה חידושים אבל הם פחות מרכזיים אז חשבתי שכדאי לכתוב תוכן עניינים, ובמידה ויצא לי לכתוב על שאר החידושים אני אעדכן את הפוסט הזה. אני מאוד מקווה שנהניתם מסדרת הפוסטים הזאת. תוכן העניינים: C# 4.0 Part 1 - First glance on the dynamic - בפרק זה נכיר לראשונה את המושג dynamic ונראה כמה דוגמאות פשוטות ושימושיות. C# 4.0 Part 2 - The GetCalculator program - פרק זה ידגים גישה על ידי dynamic למחשבון שנכתב ב - net ומחשבון שנכתב ב - JS עטוף באובייקט COM. C#...
C# 4.0 Part 12 - Covariance and Contravariance
01 July 09 09:57 AM
|
Shlomo
| with
no comments
המושג הזה הוא קצת וירטואלי למי שלא מכיר אותו, אז כדאי שנעבור על המושג לפני שנראה מה התחדש ב - C# 4.0. ב - C# 2.0 יצא מושג חדש Covariance and Contravariance in Delegates Covariance אומר את הדבר הבא: אפשר להגדיר delegate שמחזיר אובייקט ולתת מתודה שבפועל מחזירה מישהו שיורש ממנו, כלומר: delegate object CovarianceDelegate (); static void Main() { CovarianceDelegate cd = CovarianceMethod; } static Person CovarianceMethod() { } וזה הגיוני כי זה עומד בחוקי ה - Object Oriented (שאפשר לשלוח בן לאבא). Contravariance...
C# 4.0 Part 11 - Named Parameters
29 June 09 08:58 AM
|
Shlomo
|
3 comment(s)
ל - Optional Parameters יש בעיה אחת קטנה. static void Add( int id, string name = "shlomo" , float age = 0) { } static void Main() { Add(22, ,24); } זה לא מתקמפל וכמובן מאוד לא ברור. ולכן המציאו את ה - Name Parameters. static void Main() { Add(22, age: 24); } גם עבור פרמטרים שהם חובה ניתן לשלוח עם השם: static void Main() { Add(id: 22, age: 24); } זה גורם שהקוד שלנו יהיה יותר קריא. אבל צריך להיות זהירים עם השימוש ב - Named Parameters. (פוסט מומלץ לקריאה - כאן ). החל מ - C# 4.0 אסור לשנות...
C# 4.0 Part 10 - Optional Parameters - Behind The Scenes
28 June 09 07:16 AM
|
Shlomo
|
2 comment(s)
פספסתי את הפוסט של מוצאי שבת, (אולי אני אכתוב היום שניים). בכל מקרה אנחנו רוצים לדעת מה קורה מאחורי הקלעים כשמשתמשים ב - Optional Parameters. למעשה מייקרוסופט משתמשים בשני Attributes שקיימים כבר המון זמן. הראשון הוא - System.Runtime.InteropServices.OptionalAttribute והשני הוא - System.Runtime.InteropServices.DefaultParameterValueAttribute, למעשה הקוד הבא: static void Add( int id, string name = "" , float age = 0) { } מתרנדר לקוד הבא: static void Add( int id, [ Optional , DefaultParameterValue...
C# 4.0 Part 9 - Spell Checking with word using Optional Parameters
26 June 09 07:01 AM
|
Shlomo
|
3 comment(s)
כמו שהבטחתי אני רוצה להדגים שימוש ב - Optional Parameters. הקוד הבא משתמש בבדיקת האיות של Word. public static void Main() { Application word = new Application (); object missingValue = Type .Missing; Document doc = word.Documents.Add( ref missingValue, ref missingValue, ref missingValue, ref missingValue); doc.Activate(); SpellingSuggestions suggestions = word.GetSpellingSuggestions( "placa" , ref missingValue, ref missingValue, ref missingValue, ref missingValue, ref missingValue, ref...
C# 4.0 Part 8 - First glance on the Optional Parameters
25 June 09 10:12 AM
|
Shlomo
|
4 comment(s)
אחד מהתכונות החדשות של C# 4.0 היא Optional Parameters. למעשה - המצב עד היום שלא היה לנו את האופציה של פרמטרי רשות, הרגיל אותנו לכתוב קוד לא כל כך נכון, למה הכוונה - שימו לב לשני קטעי הקוד הבאים, הראשון - עושה overload למתודת Abs וקטע הקוד השני עושה overload למתודת Add. אז מה בכל זאת ההבדל ? public static class Math { public static decimal Abs( decimal value); public static double Abs( double value); public static float Abs( float value); public static int Abs( int value); public static long Abs(...
C# 4.0 Part 7 - dynamic Limitations
24 June 09 07:08 AM
|
Shlomo
| with
no comments
דברנו מספיק על dynamic, הגיע הזמן להתקדם לתכונות נוספות וחשובות של C# 4. הדבר היחיד שנשאר בנושא של dynamic זה לדעת מה אי אפשר לעשות באמצעות dynamic. ההבנה הכי חשובה בנושא, היא - שאי אפשר (באמצעות CSharpBinder) לעשות עם dynamic יותר ממה שאפשר לעשות עם האובייקט במידה והיינו ניגשים אליו בצורה לא דינמית, היות שאנחנו יודעים שלמעשה dynamic הוא object. מה שכן - אפשר לרשת מ - DynamicObject או לרשת מ - CSharpBinder, (אבל לא כתבתי על זה עדיין פוסט). 1. אי אפשר לגשת למאפיין או מתודה שהם לא ברמת ההרשאות שלנו...
C# 4.0 Part 6 - DynamicObject class and IDynamicMetaObjectProvider interface
23 June 09 08:31 AM
|
Shlomo
|
1 comment(s)
אחד הדברים המתסכלים בללמוד חומר על טכנולוגיה חדשה שעדיין לא יצאה בגרסה סופית, זה שבכל גרסת ניסיון נוספת ה - API עלול להשתנות, וזה מתסכל כי אף אחד לא מעדכן אותך שה - API שהיה קיים בגרסה אחת השתנה והוא נראה שונה לגמרי בגרסה הנוכחית, ב - PDC הודגם ממשק שנקרא IDynamicObject - הממשק הזה נעלם, לא קיים יותר. ולמעשה היות שכל הפוסטים שלי בנושא אינם מדברים על הגרסה הסופית של המוצר, יכול מאוד להיות שכש - C# 4.0 תצא לאויר בגרסה רשמית הדברים שוב ישתנו. אז קחו את זה לתשומת לבכם. כמו שהבטחתי בפוסט הקודם אני אראה...
C# 4.0 Part 5 - Behind The Scenes Part 2
22 June 09 07:41 AM
|
Shlomo
|
2 comment(s)
אז אחרי שהבנו אתמול Expression Tree והבנו שלשום שלמעשה כל dynamic הוא object, כעת נראה מה קורה כשעושים פעולות על dynamic. מה לדעתכם מתרנדר כשכותבים את הקוד הבא: int i = 10; dynamic d = i; d++; למעשה מה שקורה זה הקוד הבא (בערך - כי שיניתי את השמות של המשתנים) private static class SiteContainer { public static CallSite < Func < CallSite , object , object >> p1; } static void Main( string [] args) { if ( SiteContainer .p1 == null ) { SiteContainer .p1 = CallSite < Func < CallSite ...
C# 4.0 Part 4 - Understanding Expression Tree
21 June 09 11:12 AM
|
Shlomo
|
4 comment(s)
אז בפוסט הקודם ראינו שלמעשה אין ב - Runtime טיפוס dynamic, וכל מה שאנחנו משימים לתוך dynamic עובר להיות object. בפוסט הזה הייתי רוצה להראות מה קורה מאחורי הקלעים כשעושים פעולות על אובייקט מסוג dynamic. אבל - כדי להבין את הקוד שמתרנדר חייבים הבנה בסיסית ב - Expression Tree היות שכל המנגנון עובד עם Expression. ולכן בפוסט הזה אסביר על expression tree ובפוסט הבא נכנס למה שקורה מאחורי הקלעים. כשהתחלתי ללמוד את C# 4.0 והבנתי שאני חייב להבין קודם Expression Tree, הגעתי לפוסט המצויין הזה , ואני ממליץ לכולם...
C# 4.0 Part 3 - Behind The Scenes Part 1
20 June 09 09:31 PM
|
Shlomo
|
2 comment(s)
שני הפוסטים הקודמים עסקו בהבנה איזה שימוש אפשר לעשות עם ה - dynamic. הראשון היה הדגמה פשוטה של היכולות בעוד השני הדגים את הדוגמא הפופולרית (שכולם כותבים אבל אף אחד לא מדגים) בכל המאמרים על C# 4.0 התוכנית GetCalculator. כעת ננסה להבין מה מתרחש מאחורי הקלעים. למעשה ההבנה מה מתרחש מאחורי הקלעים, מתחלקת לשניים הראשון - מה קורה כשעושים השמה לתוך dynamic. השני - מה קורה כשמפעילים מתודות או ניגשים למאפיינים של אותו dynamic. הפוסט הזה יעסוק בשאלה הראשונה, הפוסט הבא יתחיל לענות על השאלה השנייה. אז לפני הכל...
C# 4.0 Part 2 (The "GetCalculator program)
19 June 09 09:57 AM
|
Shlomo
|
4 comment(s)
אז כמו שהבטחתי בפוסט הקודם אני אדגים שימוש אמיתי ב - dynamic, אפשר להוריד את התוכנית מכאן (נפתח ב VS2010) כל מי שקרה מאמר או פוסט כלשהו על C# 4.0 ראה את הדוגמא הבאה (להסבר על dynamic) במקום לכתוב את הקוד הזה: object o = GetCalculator(); MethodInfo mi = o.GetType().GetMethod( "Add" ); int res = ( int )mi.Invoke(o, new object [] { 2, 3 }); אפשר לכתוב את הקוד הבא: dynamic o = GetCalculator(); int res = o.Add(2, 3); הדוגמא הזאת תמיד הטרידה אותי, הרי אי אפשר להפעיל מתודות שהם לא public באמצעות...
More Posts
Next page »