Azure
Microsoft Azure
View more presentations from Lviv .Net User Group.
ASP.Net 4.0
New Features Of ASP.Net 4 0
View more presentations from Lviv .Net User Group.
Ну и конечно же , прямые линки:
ASP.Net 4.0
Microsoft Azure
// Add the following using directive to your code file:
// using System.Linq.Expressions;
// Create an expression tree.
Expression> exprTree = num => num < 5;
// Decompose the expression tree.
ParameterExpression param = (ParameterExpression)exprTree.Parameters[0];
BinaryExpression operation = (BinaryExpression)exprTree.Body;
ParameterExpression left = (ParameterExpression)operation.Left;
ConstantExpression right = (ConstantExpression)operation.Right;
Console.WriteLine("Decomposed expression: {0} => {1} {2} {3}",
param.Name, left.Name, operation.NodeType, right.Value);
/* This code produces the following output:
Decomposed expression: num => num LessThan 5
*/
public class TestClass
{ }
class Program
{
static void Main(string[] args)
{
dynamic dynObject = new TestClass();
string testString = dynObject.Hello();//error 1
dynamic dynObject2 = 7.0;
int i = dynObject2;//error 2
}
}
public class TestClass :DynamicObject
{
public override bool TryInvokeMember(InvokeMemberBinder binder, object[] args, out object result)
{
if (binder.Name == "Hello")
{
result = "This is Dynamic Object";
return true;
}
return base.TryInvokeMember(binder, args, out result);
}
}
class Program
{
static void Main(string[] args)
{
dynamic dynObject = new TestClass();
string testString = dynObject.Hello();
dynamic dynObject2 = 7.0;
int i = (int)dynObject2;
}
}
static void Main(string[] args)
{
dynamic MyExpando = new ExpandoObject();
MyExpando.Value1 = "new value 1";
MyExpando.Value2 = "new value 2";
MyExpando.DoSomething = new Action(() => Console.WriteLine("DoSomething called"));
Console.WriteLine(MyExpando.Value1);
MyExpando.DoSomething();
}

Stopwatch sw = new Stopwatch();
string str = string.Empty;
sw.Start();
//тут мы специально не используем стрингбилдер чтобы показать более - менее большие числа
for (int i = 0; i < 100000; i++)
{
str += i.ToString();
}
sw.Stop();
Console.WriteLine(sw.Elapsed.ToString());
Stopwatch sw = new Stopwatch();
string str = string.Empty;
sw.Start();
Parallel.For(0, 100000, i =>
{
str += i.ToString();
});
sw.Stop();
Console.WriteLine(sw.Elapsed.ToString());