MSDN Interview C # Programming 2

zhaozj2021-02-08  356

Programmer

Robert Hess and Jeffrey Richter's conversation in the famous programming writer, column writer and consultant.

Robert Hess: Welcome back. We are about to involve issues related to C # programming. In order to help us understand these problems, I invite my good friend Jeffery Richter to come here. Jeffery happens to be a programmer who has written a lot of programming books, and his latest book is Programming Server Side Applications for Windows 2000. Now you are also a consultant and have your company Wintelle, is it?

Jeffrey Richter: Wintellect.

Robert Hess: I guess you have a website?

Jeffrey Richter: Yes, Wintellect.com. We specialize in training, commissioning and advertising.

Robert Hess: Ok, I learned that you have recently made a lot of work about C #.

Jeffrey Richter: Yes, there is a year, I have spent a lot of energy, I have been specializing in C # programming.

Robert Hess: Is it a year? I think we just released C #.

Jeffrey Richter: Yes, I have been in the circle, in the Microsoft's circle, if you are willing. I have a small office on the 42nd floor, and there is also the research of C # and related to .NET, it has been more than a year.

Robert Hess: This Microsoft will help you because you are not Microsoft staff ...

Jeffrey Richter: right.

Robert Hess: They just help you make C # as a language understanding, then you can write more books like this?

Jeffrey Richter: Yes, they hope that I have to write more books, I got help, I found BUG, ​​attended some standard conferences, and communicated with people, so I think I have learned a lot of things, not just writing The book, and the facts have contributed to C # to some extent. So I can tell you that when I first started, the first thing I was interested in this new language, I will use it to write all the code, I know that these code is to write for the foreseeable future, let We don't know. I have a very deep C, C background, after reading information with C # related documents and programming references, I think it is already quite proficient in C #. And within one week, I can truly write some useful things.

Robert Hess: Just one week later.

Jeffrey Richter: Yes, just one week later. Because it is very similar to C , you know that the braces there are the same, the return value is the same, the parameters are the same, and many things are the same.

Robert Hess: When you continue to use objects, destructors, constructors, double colon (:), etc., you seem to have to lose some of the strange naming habits they have, right?

Jeffrey Richter: Yes, the double colon (: :) is replaced by the order (.), The arrow number (->) is also replaced by the codes, which greatly simplifies the language. Therefore, it is really easy for me, and it still has time effect, I still have to go back to see the language reference, perhaps how to overload the operator, or some normal things, you know, When I have programmed, I will rarely do some blurred things. And now most things are natural to me. In fact, it is only a process problem.

Robert Hess: Since you are doing this work for more than a year, do you noticed this language itself during this time? Whether they still have a very identical year today? Jeffrey Richter: I think it is very the same. But there is certainly some tips, and there is indeed these responses in the Beta test phase, there is a number of non-detergent destructors, the destruction of objects, etc. . Therefore, the base library has added an IDisposable interface, I think it will appear in the Beta version 2.0, not in the Beta version 1.0. At the same time, C # has added some new language structures to help you get close things to the DETERMINistic DESTRUCTION OF Objects. So I want to say that Microsoft has been very commended in the language, and they also try to join new things to respond. I also learned that after the 1.0 edition, they plan to increase generics, this is a point similar to the template in C , and I can affirm that in order to support these performance, C # will develop. In fact, when in the common language runtime runtime, all languages ​​can be used in generics.

Robert Hess: Because they are part of them, they have the right to use all those functions because they are in the public language runtime. So what do you think, C # is what is the general language?

Jeffrey Richter: Well, as I said, C # is very similar to C , so I am so familiar with it. It is very clean, I want to say it is very clean. I was born in the C background, especially as a Windows C programmer. ANSII has a C specification. In order to display features in Windows, Microsoft wants to keep some techniques in C and make these techniques look a bit like a nobles in C , but they have never really demanded. And Microsoft still adds something like __try, __finally, and __declspec.

Robert Hess: This is the C # you are talking about.

Jeffrey Richter: Yes, of course there is C . Therefore, this language is really a bit horrible. After a while, you will not fully understand, just as constant usage, when a pointer is or a constant pointer, the asterisk (*) should be in front of it, Still placed behind? You will not be able to determine that these modifiers should be placed in that line. I always need to check the information. So in C #, since Microsoft has made standardized proposals to the ECMA (European Computer Manufacturers Association) in design, it is very clean, for example, nothing is starting with the lower slide. Of course, since there is no real point in .Net Runtime, in your code, you will not meet such modifiers from the head to the end. This seems to be clean and really cool when considering it.

Robert HESS: Don't you feel missing? I mean, when I am programming with C, I like to use the pointer to solve the problem, re-classify the pointer, use the pointer algorithm, etc., you will get great fun from it. Don't you miss it when you use C #? Jeffrey Richter: Well, I have to admit that I always have a little old and old, but sometimes I miss it. Of course, in general, with C # and .NET Framework, you can always interact with other languages, so if you really have to do it, I use C instead of C # programming. C # also does provide an unsafe keyword (unsafe keyword), so you can create a method and say, this is unsafe, you have the right to use a pointer and direct memory. Despite this, I never experienced it. As for the fun of encoding, .NET Framework and basic OS libraries provide a lot of features that make programming interesting. Therefore, when I cannot keep virtual memory and sparsely submit, it is not possible to use the memory image file in .NET Framework, it can be done directly, and can also be done by interactive operation, still other similar Serialization and Web. Services such as services, they help create truly valuable applications, truly and abundant connotations.

Robert Hess: Now in your training class, you are teaching and instilling such things, are you still doing a C # training class?

Jeffrey Richter: Yes, in fact, this week, I gave the first C # program class, there are two Visual Basic programmers at the time, they are not object-oriented, and I don't really give They introduced the C # language, because I put the focus on the public language runtime library and the base library, and I would like to talk about the content of C #. However, when the two VB programmers are in the internship, it is very fast to C #, and I haven't encountered any trouble, and I can use it to develop, efficiency is also high. I am very surprised!

Robert Hess: The reason is that due to the Name.Name.name.name, instead of name, ->, name. ...

Jeffrey Richter: It is true.

Robert Hess: These will not be used in VB.

Jeffrey Richter: Correct.

Robert Hess: So the format is considerable.

Jeffrey Richter: Pair, quite consistent. Of course, they use braces {} instead of Begin and End, which may make some people not adapt. But I think that they can overcome it in most 5 minutes, and more produced.

RROBERT HESS: So in a company's position, if a company hires you to open a C # training class, I have to find out if they start thinking about some of the results of some of the company to C #, this is what you need to do? ? Or do you think they should be on?

Jeffrey Richter: Well, of course it depends on, first of all, they must decide whether to use .NET Framework as the development platform. I think this is very valuable, there is no problem for me, it is the platform I really yearn. If you are developing the .NET Framework application, you are writing a new code, and I will seem to be blowing up. C # is really easy, it is a vibrant language, using the right way you will have a lot of production. I personally believe in a large number of VB programmers, VB6.0 programmers will turn to C # instead of VB7.0. Robert Hess: What is it?

Jeffrey Richter: Because I think C # reveals more features in the common language runtime runtime, allowing you to have more control over the code and how it expresses. You will talk to the Runtime conversation, and Runtime gives you more power.

Robert Hess: Of course, we are not a VB programmer, so it will be clearly developed on the basis of C.

Jeffrey Richter: You are right.

Robert Hess: So this is exactly what it is worth, we have a little deviation. So as a language, what regard you like C #? Is it simpler, more complete (Clean) programming?

Jeffrey Richter: Well, mainly to remove useless things. For example, um, C # does not allow you to make parameters as a constant (const) statement, and you cannot have a constant physical method, while in C can be. I know that some people will think that will really lose the language characteristics, but in C , consts will always be arbitrarily abandoned, so you can do what you want in your own code. Since C # really does not allow you to use const, it is thoroughly easy to understand. Now, I think I should say: For me, .NET Frameworks really interesting thing is the public language runtime. It defines how objects run, or how to create types, and what is defined for these types. This way you have a base class library, of course it is a huge class library, which allows you to use a lot of things, so even if you are willing, you don't have to write everything again. You choose a language is your personal thing, and I have chosen C # is because it is a real outstanding high-order language, which makes I can talk to the Framework. But to some extent, the true and best language that uses .NET runtime and base class libraries should be the intermediate language (IMMEDIAT LANGUAGE) assembly language.

Robert Hess: Ha! Talking about assembly language?

Jeffrey Richter: Yes, talk about assembly language. I mean, it allows you to fully access the bottom of the platform, but in the environment in assembly language, the efficiency will be low, so many programs you must write a line. Therefore, the C # language has a hierarchy. Some properties in C # are not very common, so the C # designer like Anders has decided not to disclose it. In some cases, in order to access the runtime function provided by C #, I may help to another language. But in general, C # is the highest level of language, which allows me to solve a large number of problems in such an environment, and is extremely efficient.

Robert Hess: Not all problems, but just a large part?

Jeffrey Richter: No, this happens very little: I also need to access some things, but C # is not accessible. This is another aspect, I just think that everyone is very easy to forget, when you want to access some features of .NET, C # or some languages ​​can be transferred to other languages. Simply coding Creating this method, there may be a static method, static method in the class, using APL or COBOL or where you choose the language, may derive, then implement physical methods in some languages, and this language May really let you access certain underlying functions. Therefore, I think this is a very powerful example. I have never really appreciated the best language to complete the work. Robert Hess: Ok, I bet you may want to see some examples of C # code so that we can understand some of the questions we talk about. Do you have an example demonstration to see us?

Jeffrey Richter: Yes. I really brought a source code file, there are some examples, I can deal with it, after the show, I will give you. Welcome to upload it to the website so you can download. So here, if you like it, I should first demonstrate: In C #, each method must be in the class. There is no global method, and there is no variable outside the class, so everything will be limited to a certain range. Using system;

Class app {

Public static void

Main

() {

Console.writeline ("Hello World");

}

}

This is a Hello World program that must be retained, very simple. In the program, there is a class name app. In this class, I have my own main method, and main is a static method because it must be called from the outside. We don't have to have an instance of the app to call Main. In this example, Main returns Void and does not accept parameters. Simply in Main, it calls Console.Writeline, showing "Hello World" on the display. So this is what you can write, you can learn the minimum program of the relevant concept.

Robert Hess: Is MAIN in C # still a reserved approach? Is it like in C ?

Jeffrey Richter: main is the default, it has uppercase letters M, lowercase letters A-I-N, because C # is a case where the letter is case sensitive, like C is not like VB and .NET. So when the compiler is compiled, it will look for a static method called Main, and then use it. However, there is a compiler command line, which can override Main and select one of them. By the way, this is a very useful technique. Some people put multiple mains into a single application for group testing. When compiling, you can set different switches to perform different mains to test specific components.

Robert Hess: Wonderful skills. Do you also pass parameters such as argv, argc, is passed to the main function by default?

Using system;

Class app {

Public static void

Main

(String [] args) {

Console.writeline ("Hello World");

}

}

Jeffrey Richter: Yes, follow your place. Here, I will modify these code on the spot, that is, String is a string array, args calls the definition of me playing in slides. By the way, what is this args? Is a data type! It is a pointer to string, or a reference to a string. Speaking of pointers, you have only seen the * number, but Args is indeed a pointer. When the main is called, the startup code has already parsed the command line and creates a string array, then incoming the pointer to the array. Similar to the arggs.length, I can solve some problems, this call returns the length of the array, this property contains the number of array elements, and then I can use a normal For statement to loop, or can use C # For Each, special for EACH statements are used for fast loops. Robert Hess: It is very novel, which is not in C or C .

Jeffrey Richter: Correct. And I really have a demonstration code, I found it.

Static void arraydemo () {

// Declare a reference to an array

INT32 [] IA; / / default value null

IA = New Int32 [100];

IA = new int32 [] {1, 2, 3, 4, 5};

.

.

.

This is an example of an array code, so I will be slightly mentioned. In this example, first declare a reference to the INT32S array, and take a "IA" for an array of integers. It is just a pointer, with a 32-bit (bit) or 64-bit value, if they still run on the 64-bit system, always initialized to NULL, the reference is always initialized to NULL until it is explicitly set. Below, I am free to NEW (constructed) a group with 100 int32 values. NEW returns a reference, then I save this reference to the "IA" variable. The next line only demonstrated another way of constructing. Here I have new INT32S array. This special C # syntax begins with a left brace, followed by an array element, and of course, the element is separated from the comma. Then it is a right bracket. When you first see this syntax, you will feel a bit awkward. This is just another use of NEW, of course it can calculate the number of elements.

Robert Hess: This is just a predefined value:

.

.

.

// Display the contents of the array

Foreach (INT32 X in IA)

Console.write ("{0}", x);

// use multi-dimensional array

Stringbuilder [,] SA = New Stringbuilder [10] [5];

For (int x = 0; x <10; x ) {

For (int y = 0; y <5; y ) {

SA [x] [y] = new stringbuilder (10);

}

}

// Use an array of arrays (jagged arrays)

INT32 NUMPOLYGONS = 3;

Point [] [] polygons = new point [numpolygons] [];

Polygons [0] = new point [3] {...};

Polygons [1] = new point [5] {...};

Polygons [2] = new point [10] {...};

Jeffrey Richter: Yes, it is correct. This is foreach, which appears in the first line of the code. "Foreach" is a C # syntax, I am sure all .NET languages ​​provide this syntactic, it is an extremely common programming model. In this way, it can traverse the elements in the collection. Therefore, in the Foreach INT32 X, "X" is a variable, INT32 is of course a type, then I give the reference to array. Foreach will automatically calculate how many elements in the array, and whenever loops to Console.Write, the value of the element is displayed, and then the next element is moved.

Robert Hess: "For (i = 0, i <= lyth, i )" also do the same job, but if you want to traverse all elements, this way is awkward and difficult to follow, so it has continued to continue I will make it easier for things to do very much.

Jeffrey Richter: Yes, incisive. Despite this, I will give you a little prompt, because Foreach is a bit cool, it is also very delicate, so I save a lot of encoding. It also makes some work related to type conversion, which is also beneficial for you. So in general, when I write a loop, I usually start with foreach, and then when I continue to encode, sometimes I often realize that I need an iterator, need a number from 0 to actual numbers. X. Yes, I have to know which element number. So I ended with this loop, quite frequently ...

Robert Hess: Oh, really?

Jeffrey Richter: It is true.

Robert HESS: Is it as a standard for loop?

Jeffrey Richter: Pairing as a standard for loop. So sometimes I finally, what I have to do is more than I think. It is quite common to use foreach. It is very cool.

Robert Hess: I guess you should also put a counter there, but this will make foreach inseparable.

Jeffrey Richter: Yes, it is correct.

Robert Hess: So, what you think is C #, which is still very cool, so that the audience said, well, this is the language I want to choose?

Jeffrey Richter: Well, as Anders pointed out, C # is completely component-based, there are events, interfaces, properties, they are all kinds of citizens, so there is no lower slump, no lower bar properties, etc. . People who are born in C # should be familiar with exception handling, because when they encounter an error, call the error handler in the Framework in the base class library. So I wrote a small piece of code on the screen to demonstrate how appropriate error handles. I have a TRY block, and then emphasize that you should pay attention to the front of the word in TRY, because in the C # language it is located in the first class. I have a file stream object, which is a way to open the file in the disk. In double quotes, I gave the path name of the file we want to open.

Using system;

Using system.io;

PUBLIC CLASS APP {

Public static void

Main

() {

FILESTREAM FS = NULL; TRY {

Fs = new filestream (@ "c: /notthere.txt", filemode.open;

}

Catch (Exception E) {

Console.writeLine (E.MESSAGE);

}

Finally {

IF (fs! = null) fs.close ();

}

}

}

Robert Hess: Wait, that is a mistake, is it?

Jeffrey Richter: No, this is exactly what I want to point out. Because C # has a very cool feature, you can add a @ symbol prefix to the string so that we turn to the original string (Verbatim String, the real string, no escape character), here only allows Use a SLR slave "/" rather than the double reverse slope "//". The long path is really a very common C programming error, people replaced the doubles insembles with a backslash, and the file cannot be opened correctly. In this case, the application is added "/ N", which means that it is necessary to wrap. So, this is really a clever feature. Not like a File Stream, because people are familiar with Win32's CreateFile function, when the function cannot open a file, it will return the invalid handle value, or returned -1 means failure. In .NET Framework, when I try to open a non-existent file, I will trigger an exception, so I set up a catch block here, try to capture an exception, this is a very simple Catch block, only Put the information output screen, see what it may be done, then I set another finally block, the code here to make sure that I can perform it, there is a lot of rows in the TRY block to truly involve the code. After opening the file, the finally block will perform and close the file in the final clearly. This is really a very small feature, Win32 or even C has never had, it can make TRY, CATCH and FINALLY, truly, this operation we have never met.

Robert Hess: I think that when the application becomes more complicated, the error handling is quite important. When trying to create a file or perform a similar operation, there will be a lot of opportunities. Especially when using other people's objects and similar things. So, this does this mean that when writing C # applications, you must ensure that functions and methods can set an exception correctly and throw an exception, so that people can capture it?

Jeffrey Richter: Well, absolutely. Good programming model: When writing a function, you must verify all passed parameters. If any of the parameters are not required, an exception should be clearly triggered, and a lot of exception classes are defined in the base library, so One of them can be used easily. But you also have the ability to define your own anomaly, maybe you want to find the customer (Customer) in the database, but if you don't find their name, you can create your own Customer exception and triggered in your code. it. Robert HESS: Maybe use the name of Customer as a damaged Customer name ...

Jeffrey Richter: Yes, it is probably like this. If it is "robert", you have always wanted an exception.

Robert Hess: So, what will you develop as a programming language? When your customers participate in the training, do you have anything to them, what do they think about this? Jeffrey Richter: Well, I really think it will get huge power. I have said, I have been specializing in C # last year, occasionally use C , but now I have used it, and I believe that many VB programmers will also turn to this language because C # is more suitable for public language runtime. So, I really think it will get huge power and truly reuse. In my training class, it seems that everyone likes it. In fact, some people say that they participate in this training class, but because this class has opened C # programming lessons, they quickly found the coursework and covering Framework and Class library.

Robert Hess: So, when you talk about .NET Framework and class libraries, what do you think of them, and how do they help applications?

Jeffrey Richter: I think this platform is excellent. I used the entire platform for a year, and I have been developing a project for Microsoft recently to showcase Many of Microsoft. I work with another guy. His name is Tom, we have to meet in the morning, to continue discussing on the whiteboard, then to ... here is what we will add to the performance today, we have to discuss it again, we want Said, this is the time when we end the day, usually we have to complete it before lunch. We always complete the task over the same.

Robert Hess: Do you think C # and .NET combine helps to complete your work?

Jeffrey Richter: Oh, of course. There is no doubt that because all tests have been completed. All tests - how we open this thing, can we make this a way, can you put it in the DLL, can make it a COM object, and we should have any type of interface. All of these issues involve how you connect these and deliver your pointer to keep your connection to synchronize, so you can notify them by keeping and synchronizing them, all of which have just been introduced to the platform. Therefore, from beginning to end, we are willing to work for an hour, we have to complete a work, we will ..., then we have to sit back and start adding other things. Our productivity is really difficult to confuse, and it is also full of fun. We did increase the amazing graphic image library and alpha mixing (Blending) and all types of things, these past we have never been processed alpha mixed such things. I have worked in the work of the graphic image, but I have been over a year. Using the SYSTEM.DRAWING statement in the corresponding namespace, we can construct these images and override them and Alpha mixes, then return these images from our web server to any of the machines running on any machine, or even It is a Windows machine.

Robert Hess: I think this brings a favorable choice. To date, we have been talking about the development of applications with C # and .NET Framework, and I learned that you are a genuine application designer, write Windows applications and standard GUI programs. Accurate is the web appears, so everyone wants to write a web application or write HTML-based applications within the browser. But now in one sentence, you are summarizing your products, you are talking about Windows graphics applications with this alpha synthetic standard, and also talk about accessing the web and returns to other systems in the corresponding format. So what do you think about the Win32 application developer you like, what is the mixing of traditional application development environments and new web applications and .NET? Jeffrey Richter: Well, I am actually doing this special thing, it is not a Win32 graphic application, but a web form (Form), free a web form. Robert Hess: So is it even not a traditional Windows application? It sounds very like. Jeffrey Richter: Well, what is it true? It is actually a more complex system than traditional Win32 programs. It is actually a web service, and I think it is one of the first public Microsoft Web Services, free, so I will give the URL address. So no one can go there, this address is TERaserver.Microsoft.net. Robert Hess: Oh, I will put this address behind this record, so that everyone can click Access.

Jeffrey Richter: There are many Microsoft technology advertising, including Windows 2000 DataCenter, SQL 2000, IIS, ASP.NET, .NET Frameworks, Web Services, and Web Forms. The information is in that website. There is a TeraServer web service with image information, which displays the image and title of the stereoscopic map and conventional broth. And we also have a census service, so you can enter latitude, longitude, etc., you get the corresponding city name and the population living in the region. We also have the landmark service, give a rectangular area calibrated with latitude and longitude, you can find hospitals and schools within the region. Therefore, they are three separate web services. They can be implemented by different companies, but they are actually implemented by us. Then we wrote a web form application, which can be written by any company, but this time it is written in order to figure out the concept, which makes information to these three different web services, then get the title information from TeraServer Landmark information from the Landmark server, then we can load this information into the map.

Robert Hess: Use alpha to mix colors.

Jeffrey Richter: Well, right, use alpha mixes. Thus, this information is sent back to the web form and is sent back to customers running on any machine. We can even add such functions. When the mouse is moved above, the prompt tool will appear and tell you the corresponding school name and hospital name on the page. This example is powerful, it is simply unable to believe. In fact, the customer can be any machine running any operating system, and we use the Windows 2000 GDI performance to handle alpha mixing, and this type of advanced graphics operation, but we only send the bit map back to the customer, I think again, the power of its function, high productivity, simply make people confidence. And I also learned that many applications develop in this direction. Robert Hess: So you really like the entire Web model of the web application. Jeffrey Richter: like it. Robert Hess: Even if you are a traditional Windows application developer. Jeffrey Richter: Yes. Robert Hess: You are now in this direction to develop in this direction.

Jeffrey Richter: Yes, I am determined. The program is to run anywhere and work on the server. All of this constitutes a so-called distributed system (DISTRIBUTENESS), the server can be located in three different machines, 噢, the SQL Server for maintenance of all these materials can also be another machine, the web form server is also different The machine can also be detained by different companies to use these materials at will, they think that these materials are suitable for generating a rich application, and these programs are running anywhere accessed by the Internet. This is hard to confuse, it is really difficult to confuse!

Robert Hess: Some signs tell me, all these things have left you.

Jeffrey Richter: Yes, it is a bit.

Robert Hess: So, for the developers who are eager to try, they want to devote from C # and start writing some .NET applications, what do you need to really understand before they cross-out? What do you think is the last thing to emphasize?

Jeffrey Richter: I think that a biggest problem that these developers will face is that they must recognize that the C # language reveals the performance in the Runtime and the base library, maybe they will learn from experience in the time. Many people will pay attention to C #, or they will try themselves, or pay attention to other .NET language, it is also possible to try to do some things that are not supported by these languages, and will of course think that this is impossible. For example: In C #, all arrays are based on 0 based on the 0 index (subscript). But the public language runtime supports array has any lower boundaries and upper boundaries. A array is constructed in the base library that has the set up and down boundary. But C # naturally does not provide these features. So you have to learn, over time, you will know what it is, many of the time you may use other languages, or to access the underlying system of the language, the language is located at the top of the Runtime, for some reason, design Don't let us access the underlying system.

Robert Hess: It is like this way, by understanding all the performance of the underlying of the runtime, then you can map these performance maps (MAP) to any language you are currently using so that they provide you with the features you need. For example, I always write a pure HTML when I write a web page, because I know what it is. But if I have to write with FrontPage, I know FrontPage has its own format (Mindset), is related to the display of the webpage, and I know what it will provide me, what can't provide. Occasionally I have to turn back pure HTML and add some things or other tools in this way, which seems to be the same. Jeffrey Richter: Sometimes there are also these features in C #, but appear in different names, for example, in the formula language library, the virtual function is called Family. So you want to create a virtual function in C #, you will be qualified with protected. Yes, or don't have to protected, but protected in C # is equivalent to Family in the public language runtime. Oh, it's confused. Look, even myself is also confused.

Robert Hess: So basic ideas sounds like it is to understand the tools you are using, and their operations in the .NET Framework. Ok, thank you very much for Jeffery, I am very honored to talk to you. I will find a time again to invite you to come back to participate in this "show" program.

Jeffrey Richter: Ok, I am happy, thank you.

Robert Hess: This is the view of programmer Jeffery to C # and .NET Framework. He provides you with some good information to let you know the updated development field. He talked about a lot of URL addresses and source code examples and similar information. I promise to put them behind this record, so please continue to watch the rest of the "Show" program to see what else. ... (slightly talking to a conversation with C #)

Conclude

Robert Hess: Thank you for your participation in the other MSDN Show. This time we discussed the problem of using C # programming.

Erica WieChers: In the next MSDN SHOW program, we will talk about SOAP and how it is integrated into the .NET programming system.

Robert Hess: When we met online.

More information links

Microsoft C # Information:

C # review and presentation (Overview and Introduction to C #, http://msdn.microsoft.com/vstudio/nextgen/technology/csharpintro.asp)

C # language specification (C # language specification, http://spectre/test/library/default.asp? Url = / library / dotnet / csspec / vclrffsharpspec_start.htm)

MSDN Voice: Deeper C # Columns (MSDN Voices: Deep C # Column, http://msdn.microsoft.com/vio/deepc.asp)

A regular column, here Bobby Schmidt sharing his views and knowledge of C #.

MSDN .NET Developer Center (MSDN Developer Center for .NET, http://msdn.microsoft.com/net/)

Provide more development materials related to .NET technology.

C # Newsgroup (C # newsgroup, news: //msnews.microsoft.com/microsoft.public.dotnet.languages.csharp) is discussed with each other with people who are learning to use C #.

Information about Jeffrey Richter conversation:

Code Example (Sample Code: Address Unknown)

Book: Programming Applications for Microsoft Windows

Programming Server-Side Applications for Windows

(Co-written with Jason CLARK)

Wintellect (http://www.wintellect.com/,)

Jeffrey training and consulting firm.

TerraseRver.net (http://terraserver.microsoft.net/)

Jeffrey helps Mapping service written.

Jeffrey Richter's Homepage (http://www.jeffreyrichter.com/)

转载请注明原文地址:https://www.9cbs.com/read-812.html

New Post(0)