csharp 对可枚举列表进行排序
演示如何使用委托对可枚举列表进行排序。
<span style="color: #008080; font-style: italic;">// Create a simple example list</span>
List<string> TestList = <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color: #008000;">new</span></a> List<string><span style="color: #000000;">(</span><span style="color: #000000;">)</span>;
TestList.<span style="color: #0000FF;">Add</span><span style="color: #000000;">(</span><span style="color: #808080;">"Venezuela"</span><span style="color: #000000;">)</span>;
TestList.<span style="color: #0000FF;">Add</span><span style="color: #000000;">(</span><span style="color: #808080;">"Norway"</span><span style="color: #000000;">)</span>;
TestList.<span style="color: #0000FF;">Add</span><span style="color: #000000;">(</span><span style="color: #808080;">"Finland"</span><span style="color: #000000;">)</span>;
TestList.<span style="color: #0000FF;">Add</span><span style="color: #000000;">(</span><span style="color: #808080;">"Brazil"</span><span style="color: #000000;">)</span>;
TestList.<span style="color: #0000FF;">Add</span><span style="color: #000000;">(</span><span style="color: #808080;">"Germany"</span><span style="color: #000000;">)</span>;
TestList.<span style="color: #0000FF;">Add</span><span style="color: #000000;">(</span><span style="color: #808080;">"Australia"</span><span style="color: #000000;">)</span>;
TestList.<span style="color: #0000FF;">Add</span><span style="color: #000000;">(</span><span style="color: #808080;">"Fakeland"</span><span style="color: #000000;">)</span>;
<span style="color: #008080; font-style: italic;">// Sort the list by A-Z</span>
TestList.<span style="color: #0000FF;">Sort</span><span style="color: #000000;">(</span><span style="color: #FF0000;">delegate</span><span style="color: #000000;">(</span><span style="color: #FF0000;">string</span> A, <span style="color: #FF0000;">string</span> B<span style="color: #000000;">)</span> <span style="color: #000000;">{</span>
<span style="color: #0600FF;">return</span> A.<span style="color: #0000FF;">CompareTo</span><span style="color: #000000;">(</span>B<span style="color: #000000;">)</span>;
<span style="color: #000000;">}</span><span style="color: #000000;">)</span>;
<span style="color: #008080; font-style: italic;">// Print out the test list</span>
<span style="color: #0600FF;">foreach</span> <span style="color: #000000;">(</span><span style="color: #FF0000;">string</span> Country <span style="color: #0600FF;">in</span> TestList<span style="color: #000000;">)</span>
Console.<span style="color: #0000FF;">WriteLine</span><span style="color: #000000;">(</span>Country<span style="color: #000000;">)</span>;
<span style="color: #008080; font-style: italic;">/*
Results:
Australia
Brazil
Finland
Germany
Norway
Venezuela
*/</span>
csharp 计算MD5-Hash
一种从给定字符串生成MD5哈希的简单方法。 <br/>它应该与<a href=\"http://www.php.net/md5\"> PHP的md5()函数</a>兼容(只是小写字符串)。
<span style="color: #008080; font-style: italic;">/// <summary></span>
<span style="color: #008080; font-style: italic;">/// Calculates a MD5 hash from the given string and uses the given</span>
<span style="color: #008080; font-style: italic;">/// encoding.</span>
<span style="color: #008080; font-style: italic;">/// </summary></span>
<span style="color: #008080; font-style: italic;">/// <param name="Input">Input string</param></span>
<span style="color: #008080; font-style: italic;">/// <param name="UseEncoding">Encoding method</param></span>
<span style="color: #008080; font-style: italic;">/// <returns>MD5 computed string</returns></span>
<span style="color: #0600FF;">public</span> <span style="color: #0600FF;">static</span> <span style="color: #FF0000;">string</span> CalculateMD5<span style="color: #000000;">(</span><span style="color: #FF0000;">string</span> Input, Encoding UseEncoding<span style="color: #000000;">)</span>
<span style="color: #000000;">{</span>
<span style="color: #000000;">System</span>.<span style="color: #0000FF;">Security</span>.<span style="color: #0000FF;">Cryptography</span>.<span style="color: #0000FF;">MD5CryptoServiceProvider</span> CryptoService;
CryptoService = <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color: #008000;">new</span></a> <span style="color: #000000;">System</span>.<span style="color: #0000FF;">Security</span>.<span style="color: #0000FF;">Cryptography</span>.<span style="color: #0000FF;">MD5CryptoServiceProvider</span><span style="color: #000000;">(</span><span style="color: #000000;">)</span>;
<span style="color: #FF0000;">byte</span><span style="color: #000000;">[</span><span style="color: #000000;">]</span> InputBytes = UseEncoding.<span style="color: #0000FF;">GetBytes</span><span style="color: #000000;">(</span>Input<span style="color: #000000;">)</span>;
InputBytes = CryptoService.<span style="color: #0000FF;">ComputeHash</span><span style="color: #000000;">(</span>InputBytes<span style="color: #000000;">)</span>;
<span style="color: #0600FF;">return</span> BitConverter.<span style="color: #0000FF;">ToString</span><span style="color: #000000;">(</span>InputBytes<span style="color: #000000;">)</span>.<span style="color: #0000FF;">Replace</span><span style="color: #000000;">(</span><span style="color: #808080;">"-"</span>, <span style="color: #808080;">""</span><span style="color: #000000;">)</span>;
<span style="color: #000000;">}</span>
<span style="color: #008080; font-style: italic;">/// <summary></span>
<span style="color: #008080; font-style: italic;">/// Calculates a MD5 hash from the given string. </span>
<span style="color: #008080; font-style: italic;">/// (By using the default encoding)</span>
<span style="color: #008080; font-style: italic;">/// </summary></span>
<span style="color: #008080; font-style: italic;">/// <param name="Input">Input string</param></span>
<span style="color: #008080; font-style: italic;">/// <returns>MD5 computed string</returns></span>
<span style="color: #0600FF;">public</span> <span style="color: #0600FF;">static</span> <span style="color: #FF0000;">string</span> CalculateMD5<span style="color: #000000;">(</span><span style="color: #FF0000;">string</span> Input<span style="color: #000000;">)</span>
<span style="color: #000000;">{</span>
<span style="color: #008080; font-style: italic;">// That's just a shortcut to the base method</span>
<span style="color: #0600FF;">return</span> CalculateMD5<span style="color: #000000;">(</span>Input, <span style="color: #000000;">System</span>.<span style="color: #0000FF;">Text</span>.<span style="color: #0000FF;">Encoding</span>.<span style="color: #0600FF;">Default</span><span style="color: #000000;">)</span>;
<span style="color: #000000;">}</span>
csharp 获取HTTP标头
显示如何从给定的Web地址访问HTTP标头。
<span style="color: #008080; font-style: italic;">/// <summary></span>
<span style="color: #008080; font-style: italic;">/// Returns the responded HTTP headers of the given URL.</span>
<span style="color: #008080; font-style: italic;">/// </summary></span>
<span style="color: #008080; font-style: italic;">/// <param name="Url">The adress.</param></span>
<span style="color: #008080; font-style: italic;">/// <returns>List of headers</returns></span>
<span style="color: #0600FF;">public</span> Dictionary<string, string> GetHTTPResponseHeaders<span style="color: #000000;">(</span><span style="color: #FF0000;">string</span> Url<span style="color: #000000;">)</span>
<span style="color: #000000;">{</span>
Dictionary<string, string> HeaderList = <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color: #008000;">new</span></a> Dictionary<string, string><span style="color: #000000;">(</span><span style="color: #000000;">)</span>;
WebRequest WebRequestObject = HttpWebRequest.<span style="color: #0000FF;">Create</span><span style="color: #000000;">(</span>Url<span style="color: #000000;">)</span>;
WebResponse ResponseObject = WebRequestObject.<span style="color: #0000FF;">GetResponse</span><span style="color: #000000;">(</span><span style="color: #000000;">)</span>;
<span style="color: #0600FF;">foreach</span> <span style="color: #000000;">(</span><span style="color: #FF0000;">string</span> HeaderKey <span style="color: #0600FF;">in</span> ResponseObject.<span style="color: #0000FF;">Headers</span><span style="color: #000000;">)</span>
HeaderList.<span style="color: #0000FF;">Add</span><span style="color: #000000;">(</span>HeaderKey, ResponseObject.<span style="color: #0000FF;">Headers</span><span style="color: #000000;">[</span>HeaderKey<span style="color: #000000;">]</span><span style="color: #000000;">)</span>;
ResponseObject.<span style="color: #0000FF;">Close</span><span style="color: #000000;">(</span><span style="color: #000000;">)</span>;
<span style="color: #0600FF;">return</span> HeaderList;
<span style="color: #000000;">}</span>
csharp 自动版本控制
通过修改AssemblyInfo文件中的一行来演示如何自动化版本控制。
<span style="color: #008080; font-style: italic;">// Modify the AssemblyVersion line in the </span>
<span style="color: #008080; font-style: italic;">// "AssemblyInfo.cs" file:</span>
<span style="color: #008080; font-style: italic;">// Add a "*" to the section you want to increase automatically</span>
<span style="color: #000000;">[</span>assembly: AssemblyVersion<span style="color: #000000;">(</span><span style="color: #808080;">"0.9.0.*"</span><span style="color: #000000;">)</span><span style="color: #000000;">]</span>
<span style="color: #008080; font-style: italic;">// Remove this if you add the star</span>
<span style="color: #008080; font-style: italic;">//[assembly: AssemblyFileVersion("1.0.0.0")]</span>
<span style="color: #008080; font-style: italic;">// In your windows application you can access the current version</span>
<span style="color: #008080; font-style: italic;">// like this:</span>
MessageBox.<span style="color: #0000FF;">Show</span><span style="color: #000000;">(</span><span style="color: #0600FF;">this</span>.<span style="color: #0000FF;">ProductVersion</span><span style="color: #000000;">)</span>;
<span style="color: #008080; font-style: italic;">// "this" contains the the current "Form" object.</span>
csharp 简单的XmlSerializer示例
此示例显示如何使用XmlSerializer序列化简单对象。
<span style="color: #008080; font-style: italic;">// This is the test class we want to </span>
<span style="color: #008080; font-style: italic;">// serialize:</span>
<span style="color: #000000;">[</span>Serializable<span style="color: #000000;">(</span><span style="color: #000000;">)</span><span style="color: #000000;">]</span>
<span style="color: #0600FF;">public</span> <span style="color: #FF0000;">class</span> TestClass
<span style="color: #000000;">{</span>
<span style="color: #0600FF;">private</span> <span style="color: #FF0000;">string</span> someString;
<span style="color: #0600FF;">public</span> <span style="color: #FF0000;">string</span> SomeString
<span style="color: #000000;">{</span>
get <span style="color: #000000;">{</span> <span style="color: #0600FF;">return</span> someString; <span style="color: #000000;">}</span>
set <span style="color: #000000;">{</span> someString = value; <span style="color: #000000;">}</span>
<span style="color: #000000;">}</span>
<span style="color: #0600FF;">private</span> List<string> settings = <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color: #008000;">new</span></a> List<string><span style="color: #000000;">(</span><span style="color: #000000;">)</span>;
<span style="color: #0600FF;">public</span> List<string> Settings
<span style="color: #000000;">{</span>
get <span style="color: #000000;">{</span> <span style="color: #0600FF;">return</span> settings; <span style="color: #000000;">}</span>
set <span style="color: #000000;">{</span> settings = value; <span style="color: #000000;">}</span>
<span style="color: #000000;">}</span>
<span style="color: #008080; font-style: italic;">// These will be ignored</span>
<span style="color: #000000;">[</span>NonSerialized<span style="color: #000000;">(</span><span style="color: #000000;">)</span><span style="color: #000000;">]</span>
<span style="color: #0600FF;">private</span> <span style="color: #FF0000;">int</span> willBeIgnored1 = <span style="color: #FF0000;">1</span>;
<span style="color: #0600FF;">private</span> <span style="color: #FF0000;">int</span> willBeIgnored2 = <span style="color: #FF0000;">1</span>;
<span style="color: #000000;">}</span>
<span style="color: #008080; font-style: italic;">// Example code</span>
<span style="color: #008080; font-style: italic;">// This example requires:</span>
<span style="color: #008080; font-style: italic;">// using System.Xml.Serialization;</span>
<span style="color: #008080; font-style: italic;">// using System.IO;</span>
<span style="color: #008080; font-style: italic;">// Create a new instance of the test class</span>
TestClass TestObj = <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color: #008000;">new</span></a> TestClass<span style="color: #000000;">(</span><span style="color: #000000;">)</span>;
<span style="color: #008080; font-style: italic;">// Set some dummy values</span>
TestObj.<span style="color: #0000FF;">SomeString</span> = <span style="color: #808080;">"foo"</span>;
TestObj.<span style="color: #0000FF;">Settings</span>.<span style="color: #0000FF;">Add</span><span style="color: #000000;">(</span><span style="color: #808080;">"A"</span><span style="color: #000000;">)</span>;
TestObj.<span style="color: #0000FF;">Settings</span>.<span style="color: #0000FF;">Add</span><span style="color: #000000;">(</span><span style="color: #808080;">"B"</span><span style="color: #000000;">)</span>;
TestObj.<span style="color: #0000FF;">Settings</span>.<span style="color: #0000FF;">Add</span><span style="color: #000000;">(</span><span style="color: #808080;">"C"</span><span style="color: #000000;">)</span>;
<span style="color: #008080;">#region Save the object</span>
<span style="color: #008080; font-style: italic;">// Create a new XmlSerializer instance with the type of the test class</span>
XmlSerializer SerializerObj = <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color: #008000;">new</span></a> XmlSerializer<span style="color: #000000;">(</span><a href="http://www.google.com/search?q=typeof+msdn.microsoft.com"><span style="color: #008000;">typeof</span></a><span style="color: #000000;">(</span>TestClass<span style="color: #000000;">)</span><span style="color: #000000;">)</span>;
<span style="color: #008080; font-style: italic;">// Create a new file stream to write the serialized object to a file</span>
TextWriter WriteFileStream = <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color: #008000;">new</span></a> StreamWriter<span style="color: #000000;">(</span><span style="color: #808080;">@"C:\test.xml"</span><span style="color: #000000;">)</span>;
SerializerObj.<span style="color: #0000FF;">Serialize</span><span style="color: #000000;">(</span>WriteFileStream, TestObj<span style="color: #000000;">)</span>;
<span style="color: #008080; font-style: italic;">// Cleanup</span>
WriteFileStream.<span style="color: #0000FF;">Close</span><span style="color: #000000;">(</span><span style="color: #000000;">)</span>;
<span style="color: #008080;">#endregion</span>
<span style="color: #008080; font-style: italic;">/*
The test.xml file will look like this:
<?xml version="1.0"?>
<TestClass xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<SomeString>foo</SomeString>
<Settings>
<string>A</string>
<string>B</string>
<string>C</string>
</Settings>
</TestClass>
*/</span>
<span style="color: #008080;">#region Load the object</span>
<span style="color: #008080; font-style: italic;">// Create a new file stream for reading the XML file</span>
FileStream ReadFileStream = <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color: #008000;">new</span></a> FileStream<span style="color: #000000;">(</span><span style="color: #808080;">@"C:\test.xml"</span>, FileMode.<span style="color: #0000FF;">Open</span>, FileAccess.<span style="color: #0000FF;">Read</span>, FileShare.<span style="color: #0000FF;">Read</span><span style="color: #000000;">)</span>;
<span style="color: #008080; font-style: italic;">// Load the object saved above by using the Deserialize function</span>
TestClass LoadedObj = <span style="color: #000000;">(</span>TestClass<span style="color: #000000;">)</span>SerializerObj.<span style="color: #0000FF;">Deserialize</span><span style="color: #000000;">(</span>ReadFileStream<span style="color: #000000;">)</span>;
<span style="color: #008080; font-style: italic;">// Cleanup</span>
ReadFileStream.<span style="color: #0000FF;">Close</span><span style="color: #000000;">(</span><span style="color: #000000;">)</span>;
<span style="color: #008080;">#endregion</span>
<span style="color: #008080; font-style: italic;">// Test the new loaded object:</span>
MessageBox.<span style="color: #0000FF;">Show</span><span style="color: #000000;">(</span>LoadedObj.<span style="color: #0000FF;">SomeString</span><span style="color: #000000;">)</span>;
<span style="color: #0600FF;">foreach</span> <span style="color: #000000;">(</span><span style="color: #FF0000;">string</span> Setting <span style="color: #0600FF;">in</span> LoadedObj.<span style="color: #0000FF;">Settings</span><span style="color: #000000;">)</span>
MessageBox.<span style="color: #0000FF;">Show</span><span style="color: #000000;">(</span>Setting<span style="color: #000000;">)</span>;
csharp 是文件夹
这是一个小辅助函数,用于检查给定的<br/>路径是文件夹还是文件。
<span style="color: #008080; font-style: italic;">/// <summary></span>
<span style="color: #008080; font-style: italic;">/// Returns true if the given file path is a folder.</span>
<span style="color: #008080; font-style: italic;">/// </summary></span>
<span style="color: #008080; font-style: italic;">/// <param name="Path">File path</param></span>
<span style="color: #008080; font-style: italic;">/// <returns>True if a folder</returns></span>
<span style="color: #0600FF;">public</span> <span style="color: #FF0000;">bool</span> IsFolder<span style="color: #000000;">(</span><span style="color: #FF0000;">string</span> path<span style="color: #000000;">)</span>
<span style="color: #000000;">{</span>
<span style="color: #0600FF;">return</span> <span style="color: #000000;">(</span><span style="color: #000000;">(</span>File.<span style="color: #0000FF;">GetAttributes</span><span style="color: #000000;">(</span>path<span style="color: #000000;">)</span> & FileAttributes.<span style="color: #0000FF;">Directory</span><span style="color: #000000;">)</span> == FileAttributes.<span style="color: #0000FF;">Directory</span><span style="color: #000000;">)</span>;
<span style="color: #000000;">}</span>
csharp 下载网页
此示例显示如何在字符串中下载和存储网页<br/>的内容。
<span style="color: #008080; font-style: italic;">/// <summary></span>
<span style="color: #008080; font-style: italic;">/// Returns the content of a given web adress as string.</span>
<span style="color: #008080; font-style: italic;">/// </summary></span>
<span style="color: #008080; font-style: italic;">/// <param name="Url">URL of the webpage</param></span>
<span style="color: #008080; font-style: italic;">/// <returns>Website content</returns></span>
<span style="color: #0600FF;">public</span> <span style="color: #FF0000;">string</span> DownloadWebPage<span style="color: #000000;">(</span><span style="color: #FF0000;">string</span> Url<span style="color: #000000;">)</span>
<span style="color: #000000;">{</span>
<span style="color: #008080; font-style: italic;">// Open a connection</span>
HttpWebRequest WebRequestObject = <span style="color: #000000;">(</span>HttpWebRequest<span style="color: #000000;">)</span>HttpWebRequest.<span style="color: #0000FF;">Create</span><span style="color: #000000;">(</span>Url<span style="color: #000000;">)</span>;
<span style="color: #008080; font-style: italic;">// You can also specify additional header values like </span>
<span style="color: #008080; font-style: italic;">// the user agent or the referer:</span>
WebRequestObject.<span style="color: #0000FF;">UserAgent</span> = <span style="color: #808080;">".NET Framework/2.0"</span>;
WebRequestObject.<span style="color: #0000FF;">Referer</span> = <span style="color: #808080;">"http://www.example.com/"</span>;
<span style="color: #008080; font-style: italic;">// Request response:</span>
WebResponse Response = WebRequestObject.<span style="color: #0000FF;">GetResponse</span><span style="color: #000000;">(</span><span style="color: #000000;">)</span>;
<span style="color: #008080; font-style: italic;">// Open data stream:</span>
Stream WebStream = Response.<span style="color: #0000FF;">GetResponseStream</span><span style="color: #000000;">(</span><span style="color: #000000;">)</span>;
<span style="color: #008080; font-style: italic;">// Create reader object:</span>
StreamReader Reader = <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color: #008000;">new</span></a> StreamReader<span style="color: #000000;">(</span>WebStream<span style="color: #000000;">)</span>;
<span style="color: #008080; font-style: italic;">// Read the entire stream content:</span>
<span style="color: #FF0000;">string</span> PageContent = Reader.<span style="color: #0000FF;">ReadToEnd</span><span style="color: #000000;">(</span><span style="color: #000000;">)</span>;
<span style="color: #008080; font-style: italic;">// Cleanup</span>
Reader.<span style="color: #0000FF;">Close</span><span style="color: #000000;">(</span><span style="color: #000000;">)</span>;
WebStream.<span style="color: #0000FF;">Close</span><span style="color: #000000;">(</span><span style="color: #000000;">)</span>;
Response.<span style="color: #0000FF;">Close</span><span style="color: #000000;">(</span><span style="color: #000000;">)</span>;
<span style="color: #0600FF;">return</span> PageContent;
<span style="color: #000000;">}</span>
csharp 解冻windows GUI
此示例显示如果<br/> Windows GUI被更长的进程阻止,如何对用户事件做出反应。
<span style="color: #008080; font-style: italic;">// You need the Threading library to use the </span>
<span style="color: #008080; font-style: italic;">// "Thread.Sleep" function</span>
<span style="color: #008080; font-style: italic;">// using System.Threading;</span>
<span style="color: #008080; font-style: italic;">// This boolean value can be used to stop the</span>
<span style="color: #008080; font-style: italic;">// process below</span>
<span style="color: #FF0000;">bool</span> UserHitCancel = <span style="color: #0600FF;">false</span>;
<span style="color: #0600FF;">this</span>.<span style="color: #0000FF;">progressBar</span>.<span style="color: #0000FF;">Maximum</span> = <span style="color: #FF0000;">100</span>;
<span style="color: #008080; font-style: italic;">// Loop 100 times</span>
<span style="color: #0600FF;">for</span> <span style="color: #000000;">(</span><span style="color: #FF0000;">int</span> i = <span style="color: #FF0000;">0</span>; <span style="color: #000000;">(</span>i < <span style="color: #FF0000;">100</span> && !UserHitCancel<span style="color: #000000;">)</span>; i++<span style="color: #000000;">)</span>
<span style="color: #000000;">{</span>
<span style="color: #008080; font-style: italic;">// Update a progressbar or any other control</span>
<span style="color: #0600FF;">this</span>.<span style="color: #0000FF;">progressBar</span>.<span style="color: #0000FF;">Value</span> = i;
<span style="color: #008080; font-style: italic;">// This function checks if the user fired any</span>
<span style="color: #008080; font-style: italic;">// events, like clicks on a cancel button and </span>
<span style="color: #008080; font-style: italic;">// allowes the application to react </span>
Application.<span style="color: #0000FF;">DoEvents</span><span style="color: #000000;">(</span><span style="color: #000000;">)</span>;
<span style="color: #008080; font-style: italic;">// This tells the current thread to sleep for 50 milliseconds,</span>
<span style="color: #008080; font-style: italic;">// so that the user can see the progress bar filling up</span>
Thread.<span style="color: #0000FF;">Sleep</span><span style="color: #000000;">(</span>TimeSpan.<span style="color: #0000FF;">FromMilliseconds</span><span style="color: #000000;">(</span><span style="color: #FF0000;">50</span><span style="color: #000000;">)</span><span style="color: #000000;">)</span>;
<span style="color: #000000;">}</span>
csharp 从URL中提取域名
显示三种不同的方法如何提取给定网址的<br/>域名。
<span style="color: #008080; font-style: italic;">/*
** Method 1 (using the build-in Uri-object)
*/</span>
<span style="color: #0600FF;">public</span> <span style="color: #0600FF;">static</span> <span style="color: #FF0000;">string</span> ExtractDomainNameFromURL_Method1<span style="color: #000000;">(</span><span style="color: #FF0000;">string</span> Url<span style="color: #000000;">)</span>
<span style="color: #000000;">{</span>
<span style="color: #0600FF;">if</span> <span style="color: #000000;">(</span>!Url.<span style="color: #0000FF;">Contains</span><span style="color: #000000;">(</span><span style="color: #808080;">"://"</span><span style="color: #000000;">)</span><span style="color: #000000;">)</span>
Url = <span style="color: #808080;">"http://"</span> + Url;
<span style="color: #0600FF;">return</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color: #008000;">new</span></a> Uri<span style="color: #000000;">(</span>Url<span style="color: #000000;">)</span>.<span style="color: #0000FF;">Host</span>;
<span style="color: #000000;">}</span>
<span style="color: #008080; font-style: italic;">/*
** Method 2 (using string modifiers)
*/</span>
<span style="color: #0600FF;">public</span> <span style="color: #0600FF;">static</span> <span style="color: #FF0000;">string</span> ExtractDomainNameFromURL_Method2<span style="color: #000000;">(</span><span style="color: #FF0000;">string</span> Url<span style="color: #000000;">)</span>
<span style="color: #000000;">{</span>
<span style="color: #0600FF;">if</span> <span style="color: #000000;">(</span>Url.<span style="color: #0000FF;">Contains</span><span style="color: #000000;">(</span><span style="color: #808080;">@"://"</span><span style="color: #000000;">)</span><span style="color: #000000;">)</span>
Url = Url.<span style="color: #0000FF;">Split</span><span style="color: #000000;">(</span><a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color: #008000;">new</span></a> <span style="color: #FF0000;">string</span><span style="color: #000000;">[</span><span style="color: #000000;">]</span> <span style="color: #000000;">{</span> <span style="color: #808080;">"://"</span> <span style="color: #000000;">}</span>, <span style="color: #FF0000;">2</span>, StringSplitOptions.<span style="color: #0000FF;">None</span><span style="color: #000000;">)</span><span style="color: #000000;">[</span><span style="color: #FF0000;">1</span><span style="color: #000000;">]</span>;
<span style="color: #0600FF;">return</span> Url.<span style="color: #0000FF;">Split</span><span style="color: #000000;">(</span><span style="color: #808080;">'/'</span><span style="color: #000000;">)</span><span style="color: #000000;">[</span><span style="color: #FF0000;">0</span><span style="color: #000000;">]</span>;
<span style="color: #000000;">}</span>
<span style="color: #008080; font-style: italic;">/*
** Method 3 (using regular expressions -> slowest)
*/</span>
<span style="color: #0600FF;">public</span> <span style="color: #0600FF;">static</span> <span style="color: #FF0000;">string</span> ExtractDomainNameFromURL_Method3<span style="color: #000000;">(</span><span style="color: #FF0000;">string</span> Url<span style="color: #000000;">)</span>
<span style="color: #000000;">{</span>
<span style="color: #0600FF;">return</span> <span style="color: #000000;">System</span>.<span style="color: #0000FF;">Text</span>.<span style="color: #0000FF;">RegularExpressions</span>.<span style="color: #0000FF;">Regex</span>.<span style="color: #0000FF;">Replace</span><span style="color: #000000;">(</span>
Url,
<span style="color: #808080;">@"^([a-zA-Z]+:\/\/)?([^\/]+)\/.*?$"</span>,
<span style="color: #808080;">"$2"</span>
<span style="color: #000000;">)</span>;
<span style="color: #000000;">}</span>
csharp 简单的拖放示例
此示例显示了如何实现基本的拖放功能。<br/> <br/>如果要将文件直接从Windows资源管理器中拖出(b)b(或任何相关软件),这非常有用。你的申请。
<span style="color: #008080; font-style: italic;">// Form load event or a similar place</span>
<span style="color: #0600FF;">private</span> <span style="color: #0600FF;">void</span> Form_Load<span style="color: #000000;">(</span><span style="color: #FF0000;">object</span> sender, EventArgs e<span style="color: #000000;">)</span>
<span style="color: #000000;">{</span>
<span style="color: #008080; font-style: italic;">// Enable drag and drop for this form</span>
<span style="color: #008080; font-style: italic;">// (this can also be applied to any controls)</span>
<span style="color: #0600FF;">this</span>.<span style="color: #0000FF;">AllowDrop</span> = <span style="color: #0600FF;">true</span>;
<span style="color: #008080; font-style: italic;">// Add event handlers for the drag & drop functionality</span>
<span style="color: #0600FF;">this</span>.<span style="color: #0000FF;">DragEnter</span> += <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color: #008000;">new</span></a> DragEventHandler<span style="color: #000000;">(</span>Form_DragEnter<span style="color: #000000;">)</span>;
<span style="color: #0600FF;">this</span>.<span style="color: #0000FF;">DragDrop</span> += <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color: #008000;">new</span></a> DragEventHandler<span style="color: #000000;">(</span>Form_DragDrop<span style="color: #000000;">)</span>;
<span style="color: #000000;">}</span>
<span style="color: #008080; font-style: italic;">// This event occurs when the user drags over the form with </span>
<span style="color: #008080; font-style: italic;">// the mouse during a drag drop operation </span>
<span style="color: #0600FF;">void</span> Form_DragEnter<span style="color: #000000;">(</span><span style="color: #FF0000;">object</span> sender, DragEventArgs e<span style="color: #000000;">)</span>
<span style="color: #000000;">{</span>
<span style="color: #008080; font-style: italic;">// Check if the Dataformat of the data can be accepted</span>
<span style="color: #008080; font-style: italic;">// (we only accept file drops from Explorer, etc.)</span>
<span style="color: #0600FF;">if</span> <span style="color: #000000;">(</span>e.<span style="color: #0000FF;">Data</span>.<span style="color: #0000FF;">GetDataPresent</span><span style="color: #000000;">(</span>DataFormats.<span style="color: #0000FF;">FileDrop</span><span style="color: #000000;">)</span><span style="color: #000000;">)</span>
e.<span style="color: #0000FF;">Effect</span> = DragDropEffects.<span style="color: #0000FF;">Copy</span>; <span style="color: #008080; font-style: italic;">// Okay</span>
<span style="color: #0600FF;">else</span>
e.<span style="color: #0000FF;">Effect</span> = DragDropEffects.<span style="color: #0000FF;">None</span>; <span style="color: #008080; font-style: italic;">// Unknown data, ignore it</span>
<span style="color: #000000;">}</span>
<span style="color: #008080; font-style: italic;">// Occurs when the user releases the mouse over the drop target </span>
<span style="color: #0600FF;">void</span> Form_DragDrop<span style="color: #000000;">(</span><span style="color: #FF0000;">object</span> sender, DragEventArgs e<span style="color: #000000;">)</span>
<span style="color: #000000;">{</span>
<span style="color: #008080; font-style: italic;">// Extract the data from the DataObject-Container into a string list</span>
<span style="color: #FF0000;">string</span><span style="color: #000000;">[</span><span style="color: #000000;">]</span> FileList = <span style="color: #000000;">(</span><span style="color: #FF0000;">string</span><span style="color: #000000;">[</span><span style="color: #000000;">]</span><span style="color: #000000;">)</span>e.<span style="color: #0000FF;">Data</span>.<span style="color: #0000FF;">GetData</span><span style="color: #000000;">(</span>DataFormats.<span style="color: #0000FF;">FileDrop</span>, <span style="color: #0600FF;">false</span><span style="color: #000000;">)</span>;
<span style="color: #008080; font-style: italic;">// Do something with the data...</span>
<span style="color: #008080; font-style: italic;">// For example add all files into a simple label control:</span>
<span style="color: #0600FF;">foreach</span> <span style="color: #000000;">(</span><span style="color: #FF0000;">string</span> File <span style="color: #0600FF;">in</span> FileList<span style="color: #000000;">)</span>
<span style="color: #0600FF;">this</span>.<span style="color: #0000FF;">label</span>.<span style="color: #0000FF;">Text</span> += File + <span style="color: #808080;">"<span style="color: #008080; font-weight: bold;">\n</span>"</span>;
<span style="color: #000000;">}</span>