Professional ASP.NET 1.1 [Electronic resources] نسخه متنی

اینجــــا یک کتابخانه دیجیتالی است

با بیش از 100000 منبع الکترونیکی رایگان به زبان فارسی ، عربی و انگلیسی

Professional ASP.NET 1.1 [Electronic resources] - نسخه متنی

Alex Homeret

| نمايش فراداده ، افزودن یک نقد و بررسی
افزودن به کتابخانه شخصی
ارسال به دوستان
جستجو در متن کتاب
بیشتر
تنظیمات قلم

فونت

اندازه قلم

+ - پیش فرض

حالت نمایش

روز نیمروز شب
جستجو در لغت نامه
بیشتر
توضیحات
افزودن یادداشت جدید


"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">








  • Common Examples

    Experienced developers probably won't have much trouble using the new features of the languages, or even converting from one language to another. However, many people use ASP and VBScript daily to build great sites, but have little experience of advanced development features, such as the object- oriented features in .NET. That's actually a testament to how simple ASP is, but now that ASP.NET is moving up a gear, it's important that you make the most of these features.

    To that end, this section will give a few samples in Visual Basic .NET and C#, covering a few common areas. This will help should you want to convert existing code, write new code in a language that you aren't an expert in, or perhaps just examine someone else's code. We won't cover the definition of classes and class members again in this section, as they've had a good examination earlier in the chapter.


    Variable Declaration


    The first point to look at is that of variable declaration. The following examples show the difference between VB.NEt and C# when declaring variables.

    Visual Basic .NET


    Visual Basic .NET has the same variable declaration syntax as the previous version, but now has the ability to set initial values at variable declaration time. For example:


    Dim Name As String = "Rob Smith"
    Dim Age As Integer = 28
    Dim coolDude As New Person("Vince", "Patel")

    C#


    C# follows the C/C++ style of variable declaration:


    string Name = "Rob Smith";
    int Age = 28;
    coolDude = new Person("Vince", "Patel");


    Functions and Procedures


    Declaring procedures is similar across all languages, as the following examples show.

    Visual Basic .NET


    Procedures and functions follow similar syntax to previous versions:


    Private Function GetDiscounts(Company As String) As DataSet
    Public Sub UpdateDiscounts(Company As String, Discount As Double)

    The major difference is that by default all parameters are now passed by value, and not by reference. Moreover, remember that optional parameters also now require a default value:


    ' incorrect
    Function GetDiscounts(Optional Comp As String) As DataSet
    ' correct
    Function GetDiscounts(Optional Comp As String = "Wrox") As DataSet

    Returning values from functions now uses the Return statement, rather than setting the function name to the desired value. For example:


    Function IsActive() As Boolean
    ' some code here
    Return True
    End Function

    The way you call procedures has also changed. The rule is that arguments to all procedure calls must be enclosed in parentheses. For example:


    UpdateDiscounts "Wrox", 5 ' no longer works
    UpdateDiscounts("Wrox", 5) ' new syntax

    C#


    C# doesn't have any notion of procedures – there are only functions that either return or don't return values (in which case the type is void). For example:


    bool IsActive()
    {
    // some code here

    return true;
    }
    void UpdateDiscounts(string Company, double Discount)
    {
    return;
    }





    Important

    To call procedures, C# requires that parentheses be used.



    Syntactical Differences


    A few syntactical differences confuse many people when switching languages for the firsttime. The first is that Visual Basic isn't case sensitive, but the other languages - are it still catches me out! Other things are the use of line terminators in C# and JScript, which use a semicolon. Many people switching to these languages complain about them, but the reason they are so great is that it makes the language free form – the end of the line doesn't end the current statement. This is unlike Visual Basic, where the end of the line is the end of the statement, and a line continuation character is required for long lines.


    Loops


    The syntax of loop constructs differs from Vb.NET to C#.

    Visual Basic .NET


    There are four loop constructs in Visual Basic, and the syntax of one has changed in Visual Basic .NET. The first is the ForNext loop:


    For counter = start To end [Step step]
    Next [counter]

    For example:


    For count = 1 To 10
    ...
    Next

    The second is the While loop, for which the syntax has changed – the new syntax is:


    While condition
    End While

    For example:


    While count < 10
    ...
    End While





    Note

    In previous versions of Visual Basic, the loop was terminated with a Wend statement.


    The third is the Do…Loop, which has two forms:


    Do [(While | Until) condition]
    Loop

    Or:


    Do
    Loop [(While | Until) condition]

    The difference between these two is the placement of the test condition. In the first instance, the test is executed before any loop content, and therefore the content may not be executed. In the second case, the test is at the end of the loop, so the content is always executed at least once. For example:


    Do While count < 10
    Loop
    Do
    Loop While count < 10

    The For Each loop construct is for iterating through collections:


    For Each element In collection
    Next [element]

    For example:


    Dim ctl As Control
    For Each ctl In Page.Controls
    ...
    Next

    C#


    C# has the same number of loop constructs as Visual Basic. The first is the for loop:


    for ([initializers] ; [expression] ; [iterators])

    For example:


    for (count = 0 ; count < 10 ; count++)

    Each of these parts is optional. For example:


    for ( ; count < 10; count++)
    for ( ; ; count++)
    for (count = 0 ; ; count++)
    for ( ; ; )





    Note

    The last of these produces an infinite loop.


    The second is the while loop:


    while (expression)

    For example:


    while (count < 10)

    The third is the do...while loop:


    do statement while (expressions);

    For example:


    do
    while (count < 10);

    The foreach loop construct is for iterating through collections:


    foreach (type identifier in expression)

    For example:


    foreach (Control ctl in Page.Controls)

    You can also use this for looping through arrays:


    String[] Authors = new String[]
    {"Alex", "Brian", "Dave", "Karli", "Rich", "Rob"};

    foreach (String Author in Authors)
    Console.WriteLine("{0}", Author);

    One point to note about loops in C# is that the loop affects the code block after the loop. This can be a single line or a bracketed block; for example:


    for (count = 0 ; count < 10 ; count++)
    Console.WriteLine("{0}", count);

    If more than one line is required as part of the loop, this can be written as:


    for (count = 0 ; count < 10 ; count++)
    {
    Console.Write("The value is now: ");
    Console.WriteLine("{0}", count);
    }


    Type Conversion


    Type conversion of one data type to another causes a great deal of confusion, especially for those programmers who are used to a typeless language such as VBScript. When dealing with strongly typed languages, you have to let the compiler or runtime convert between types (if it can) or explicitly perform the conversion yourself. The method of conversion depends upon the language.

    Visual Basic .NET


    In Visual Basic .NET there are two ways to do this. The first uses CType:


    Dim AgeString As String
    Dim Age As Integer

    AgeString = "25"
    Age = CType(AgeString, Integer)

    The CType function takes an object and a data type, and returns the object converted to the data type.

    The other way is to use the data type as a cast function:


    Age = CInt(AgeString)

    C#


    In C# just place the type in parentheses before the expression you wish to convert. For example:


    Age = (int)AgeString;

  • / 243