1.string str=null和string str=""有什么不同?
2.remoting和webservices有什么不同?
3.遍历所有的<filename>,使用递归方法,画出流程图。
1. 第一个是空引用(托管堆里无对象),第二个托管堆里有个空字符串
String str = null; 声明一个String对象变量,该变量不指向任何String对象。
String str = ""; 声明一个String对象变量,该变量指向""的对象
string str="" 会分配内存空间, 但string str=null不会
2. 都能开发分布式多层应用程序设计,如果需要在不同系统之间进行互操作,应该选择使用开放标准 (SOAP、XML、HTTP) 的 Web 服务方法,;如果各种系统中的所有组件都是 CLR 托管的,则 .NET Remoting“可能”是正确的选择
http://www.microsoft.com/china/MSDN/library/archives/library/dndotnet/html/dotnetremotearch.asp#dotnetremotearch_topic4
WebService是工业标准,基于Http协议传递.Remoting是.Net一个RPC调用机制,可以基于TCP协议,性能相对好些.
.NET Remoting主要用于分布式程序开发,小项目一般用不到,且更适合企业内部网(局域网使用),而且支持二进制传输与比WebServices速度要快。
3.
using System;
using System.IO;
class ListAllFilesDemo
{
public static void Main()
{
Console.Write("请输入要查询的目录: ");
string dir = Console.ReadLine();
try
{
ListFiles(new DirectoryInfo(dir));
}
catch(IOException e)
{
Console.WriteLine(e.Message);
}
}
public static void ListFiles(FileSystemInfo info)
{
if(!info.Exists) return;
DirectoryInfo dir = info as DirectoryInfo;
//不是目录
if(dir == null) return;
FileSystemInfo [] files = dir.GetFileSystemInfos();
for(int i = 0; i < files.Length; i++)
{
FileInfo file = files[i] as FileInfo;
//是文件
if(file != null)
Console.WriteLine(file.FullName + "/t" + file.Length);
//对于子目录,进行递归调用
else
ListFiles(files[i]);
}
}
}
----------------------------------------------------------------------
public void PrintFiles(string dir)
{
//检测dir的合法性
string[] files = Directory.GetFiles(dir);
foreach(string file in files)
Console.WriteLine(file);
string[] folders = Directory.GetDirectories(dir);
foreach (string folder in folders)
PrintFiles(folder);
}