Skip to main content

C# 4.0-an Intoduction

C# 4.0-an Intoduction

.Net Framework 4.0 is the buzzword currently.
In this section I'll provide some useful links to get you started with C# 4.0 and try to explore the following new introductions in C# 4.0

  • Biginteger
  • Complex
  • Optional parameters
  • Named parameters

.Net Framwork 4.0 has introduced two new types:
1.Biginteger
2.Complex
Biginteger

BigInteger Example:

BigInteger p = UInt64.MaxValue;
BigInteger q = UInt64.MaxValue;

BigInteger r = p * q;

BigInteger is immutable(as is the string in C#)
For Eamplew:
BigInteger p = 1;
p++;
will result in the creation of a second BigInteger object, assigning it back to a.


BigInteger has many static methods, such as the typical Parse(), TryParse(), and
ToString() methods (which support hex format as well) found in other integer types,
as well as mathematical helpers such as Pow(), Log(), Log10(), and others.

Complex

Newly added class(System.Numerics.Complex)can be used to represent imaginary numbers.
Complex wraps both the real and imaginary parts using doubles as the underlying
format.
For Example:

Complex a = new Complex(2, 1);
Complex b = new Complex(3, 2);


Optional parameters and Named parameters.


Optional parameters existed in VB.Net for long (so far as i know), however these were missing from C#.

The only option available for C# developers(and many a times really frustrating) was to use Overloading (change the number or

sequence or type of paramters).

However with .net framework 4.0(C# 4.0), it is now possible to use parameters as optional

Below written example will put some light in this context.

consider  a function that takes three paramteres

private string SomeMethod(string firstname, string lastname= "TestLAstName", int age = 10)
{
return firstname + " " + lastname;
}

The second and third parameters, lastname & age, both have default values. The only parameter required is firstname.

The method can be called as

string name = null;
name = SomeMethod("TestName");

That will return TestName TestLAstName.

OR the Method can be called as

string name = null;
name = SomeMethod("Pradeep", "Patel");

The value returned is Pradeep Patel.

When age need to passed try as following (Named Paramter)

string name = null;
name = SomeMethod("Suprotim", age: 20);


The above mentioned additions in C# 4.0 are real good additions that will definitely make the programming more fun.


Hope this was helpful!
Till next time we connect Happy Coding.

Comments

Popular posts from this blog

Authentication using Social Networking portals(Facebook, Gmail, and Yahoo)

There are tons of sites, which offer sign on using the social networking site credentials (Facebook, gtalk, twitter and the list continues).It can be termed a “SINGLE SIGNON” and offers a lot of benefits compared to traditional database authentication approach. However, not storing user credentials in the DB imposes an additional risk. How to track who all logged into the system. Now the question is, which approach to follow. The best approach is to use inbuilt asp.net users for storing the logging info about user activities and using single signon technique for authentication. This article will explore the approach and provide the details of implementation using some third party libraries and customizing it to the requirements. The Authentication will be done using the following networking portals Yahoo  Gmail Facebook    Special thanks to my friend Sumit Khandelwal, for implementation of Facebook part (in fact he did it all!!) Except Facebook, all other ca...

WPF Overview-Part-II

This post is in continuation to the last post. In this Post I’ll be exploring the Dependency Properties Dependency properties are similar to CLR properties with more advanced and complex features. The main difference between the CLR properties and dependency properties is, that the value of a normal .NET property is read directly from a private member in your class, whereas the value of a DependencyProperty is resolved dynamically when calling the GetValue() method that is inherited from DependencyObject . In case this description did not make sense, no need to worry, It will become clear by the time you reach end of this article. How the Value is Resolved in Dependency properties Every time a dependency property is accessed, it internally resolves the value by following the precedence from high to low. It checks if a local value is available, if not, check if a custom style trigger is active and I the similar manner continues until it finds a value. At last the default value is alwa...

HTML-5 Let's get started

Want to see html 5 in action, before actually diving into it, here's your chance. Go to this LINK and see the wonderful features that HTML-5 has to offer. Feeling overwhelmed, feel like getting hands dirty with this new kid on the block? Here's how to get started Hope this was useful.... Till next we connect.... Happy reading.....