C#
This post touches on four major expression subjects:
1) String Comparison - does a string contain a particular sub-string?
a. finding valid HTML tags- RegEx.Matches return MactchCollection
valid html tags: Regex HTMLTag = new Regex(@"(<\/?[^>]+>)");
2) Splitting a string into segments(分割,部分)- we will take an IPv4 address and retrieve its dotted components
a. splitting decimal Tcp/IP address looks like xxx.xxx.xxx.xxx with x being a decimal number
Regex tcpIp = new Regex(@"(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})");
3) String Replacement
4) Substitution Patterns
5) Stricter input validation- how to harden your expressions
1) The ? conditional evaluation operator
example:int max = (x > y) ? x : y;
2) Null-Coalesce(合并,联合) operator(??)
example:obejct e = ( c != null ) ? c : d; => object e = c ?? d;
3) Object Initializers
Customer c = new Customer{ Name="James",Address="204 Lime Street"};(c# 3.0)
4) The using statement
5) Aliases(别名) for long winded namespaces and types
example: using Word = Microsoft.Office.Interop.Word;
Word.Application = new Word.Application(){ Visible = true};
6) Nullable objects
example: Nullable x = null;
int? x = null;
7) Automatic Properties(c# 3.0)
8) Type inference(c#3.0 var)
note: There is no performance impact results form using type inference.The compiler does all the work figuring out the data type at compile time.
9) Lambda Expressions
10) string.IsNullOrEmpty
Optional and named parameters in C# 4.0
Example:app.Document.open(ref filename,ref missing.......);
app.Documents.open(@"c:\Document.docx",Readonly:true);
1) what is an anonymous type?
One important motivation(动机)for this was to make code written with LINQ easier to read.Anonymous types simply mean that you don't specify the type- but let the complier do it instead.
2) what is the beneficial for Anonymous type?
a. simple definitions,simplified
b. using anonymous types for creating arrays
c. Saving time and code with anonymous types
d. Combining Lambda expressions with Queries
3) other questions?
a. Is var typesafe? yes
b. Is there a performance penalty(处罚,征罚) for using "var"? no
c. On using anonymous definitions in large projects
Debugger
1) Install the Visual Studio 2008 QFE( Quick-Fix-Engineering)
2) Start Visual Studio 2008 and bring up Tools > Options > Debugging > General
Turn OFF the "Enable Just My Code" setting
Turn ON the "Enable Source Server Support" setting
3) Next,bring up the "Symbols" page and set the symbols download URL and a cache location.
Set the symbol file location to be:http://referencesource.microsoft.com/symbols
Sliverlight
Other