csharp 对可枚举列表进行排序

演示如何使用委托对可枚举列表进行排序。

<span style="color: #008080; font-style: italic;">// Create a simple example list</span>
List&lt;string&gt; TestList = <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color: #008000;">new</span></a> List&lt;string&gt;<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
&nbsp;
TestList.<span style="color: #0000FF;">Add</span><span style="color: #000000;">&#40;</span><span style="color: #808080;">&quot;Venezuela&quot;</span><span style="color: #000000;">&#41;</span>;
TestList.<span style="color: #0000FF;">Add</span><span style="color: #000000;">&#40;</span><span style="color: #808080;">&quot;Norway&quot;</span><span style="color: #000000;">&#41;</span>;
TestList.<span style="color: #0000FF;">Add</span><span style="color: #000000;">&#40;</span><span style="color: #808080;">&quot;Finland&quot;</span><span style="color: #000000;">&#41;</span>;
TestList.<span style="color: #0000FF;">Add</span><span style="color: #000000;">&#40;</span><span style="color: #808080;">&quot;Brazil&quot;</span><span style="color: #000000;">&#41;</span>;
TestList.<span style="color: #0000FF;">Add</span><span style="color: #000000;">&#40;</span><span style="color: #808080;">&quot;Germany&quot;</span><span style="color: #000000;">&#41;</span>;
TestList.<span style="color: #0000FF;">Add</span><span style="color: #000000;">&#40;</span><span style="color: #808080;">&quot;Australia&quot;</span><span style="color: #000000;">&#41;</span>;
TestList.<span style="color: #0000FF;">Add</span><span style="color: #000000;">&#40;</span><span style="color: #808080;">&quot;Fakeland&quot;</span><span style="color: #000000;">&#41;</span>;
&nbsp;
&nbsp;
<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;">&#40;</span><span style="color: #FF0000;">delegate</span><span style="color: #000000;">&#40;</span><span style="color: #FF0000;">string</span> A, <span style="color: #FF0000;">string</span> B<span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span> 
    <span style="color: #0600FF;">return</span> A.<span style="color: #0000FF;">CompareTo</span><span style="color: #000000;">&#40;</span>B<span style="color: #000000;">&#41;</span>;
<span style="color: #000000;">&#125;</span><span style="color: #000000;">&#41;</span>;
&nbsp;
<span style="color: #008080; font-style: italic;">// Print out the test list</span>
<span style="color: #0600FF;">foreach</span> <span style="color: #000000;">&#40;</span><span style="color: #FF0000;">string</span> Country <span style="color: #0600FF;">in</span> TestList<span style="color: #000000;">&#41;</span>
    Console.<span style="color: #0000FF;">WriteLine</span><span style="color: #000000;">&#40;</span>Country<span style="color: #000000;">&#41;</span>;
&nbsp;
<span style="color: #008080; font-style: italic;">/*
Results:
&nbsp;
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;">/// &lt;summary&gt;</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;">/// &lt;/summary&gt;</span>
<span style="color: #008080; font-style: italic;">/// &lt;param name=&quot;Input&quot;&gt;Input string&lt;/param&gt;</span>
<span style="color: #008080; font-style: italic;">/// &lt;param name=&quot;UseEncoding&quot;&gt;Encoding method&lt;/param&gt;</span>
<span style="color: #008080; font-style: italic;">/// &lt;returns&gt;MD5 computed string&lt;/returns&gt;</span>
<span style="color: #0600FF;">public</span> <span style="color: #0600FF;">static</span> <span style="color: #FF0000;">string</span> CalculateMD5<span style="color: #000000;">&#40;</span><span style="color: #FF0000;">string</span> Input, Encoding UseEncoding<span style="color: #000000;">&#41;</span>
<span style="color: #000000;">&#123;</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;">&#40;</span><span style="color: #000000;">&#41;</span>;
&nbsp;
    <span style="color: #FF0000;">byte</span><span style="color: #000000;">&#91;</span><span style="color: #000000;">&#93;</span> InputBytes = UseEncoding.<span style="color: #0000FF;">GetBytes</span><span style="color: #000000;">&#40;</span>Input<span style="color: #000000;">&#41;</span>;
    InputBytes = CryptoService.<span style="color: #0000FF;">ComputeHash</span><span style="color: #000000;">&#40;</span>InputBytes<span style="color: #000000;">&#41;</span>;
    <span style="color: #0600FF;">return</span> BitConverter.<span style="color: #0000FF;">ToString</span><span style="color: #000000;">&#40;</span>InputBytes<span style="color: #000000;">&#41;</span>.<span style="color: #0000FF;">Replace</span><span style="color: #000000;">&#40;</span><span style="color: #808080;">&quot;-&quot;</span>, <span style="color: #808080;">&quot;&quot;</span><span style="color: #000000;">&#41;</span>;
<span style="color: #000000;">&#125;</span>
&nbsp;
<span style="color: #008080; font-style: italic;">/// &lt;summary&gt;</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;">/// &lt;/summary&gt;</span>
<span style="color: #008080; font-style: italic;">/// &lt;param name=&quot;Input&quot;&gt;Input string&lt;/param&gt;</span>
<span style="color: #008080; font-style: italic;">/// &lt;returns&gt;MD5 computed string&lt;/returns&gt;</span>
<span style="color: #0600FF;">public</span> <span style="color: #0600FF;">static</span> <span style="color: #FF0000;">string</span> CalculateMD5<span style="color: #000000;">&#40;</span><span style="color: #FF0000;">string</span> Input<span style="color: #000000;">&#41;</span>
<span style="color: #000000;">&#123;</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;">&#40;</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;">&#41;</span>;
<span style="color: #000000;">&#125;</span>

csharp 获取HTTP标头

显示如何从给定的Web地址访问HTTP标头。

<span style="color: #008080; font-style: italic;">/// &lt;summary&gt;</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;">/// &lt;/summary&gt;</span>
<span style="color: #008080; font-style: italic;">/// &lt;param name=&quot;Url&quot;&gt;The adress.&lt;/param&gt;</span>
<span style="color: #008080; font-style: italic;">/// &lt;returns&gt;List of headers&lt;/returns&gt;</span>
<span style="color: #0600FF;">public</span> Dictionary&lt;string, string&gt; GetHTTPResponseHeaders<span style="color: #000000;">&#40;</span><span style="color: #FF0000;">string</span> Url<span style="color: #000000;">&#41;</span>
<span style="color: #000000;">&#123;</span>
    Dictionary&lt;string, string&gt; HeaderList = <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color: #008000;">new</span></a> Dictionary&lt;string, string&gt;<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
&nbsp;
    WebRequest WebRequestObject = HttpWebRequest.<span style="color: #0000FF;">Create</span><span style="color: #000000;">&#40;</span>Url<span style="color: #000000;">&#41;</span>;
    WebResponse ResponseObject = WebRequestObject.<span style="color: #0000FF;">GetResponse</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
&nbsp;
    <span style="color: #0600FF;">foreach</span> <span style="color: #000000;">&#40;</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;">&#41;</span>
        HeaderList.<span style="color: #0000FF;">Add</span><span style="color: #000000;">&#40;</span>HeaderKey, ResponseObject.<span style="color: #0000FF;">Headers</span><span style="color: #000000;">&#91;</span>HeaderKey<span style="color: #000000;">&#93;</span><span style="color: #000000;">&#41;</span>;
&nbsp;
    ResponseObject.<span style="color: #0000FF;">Close</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
&nbsp;
    <span style="color: #0600FF;">return</span> HeaderList;
<span style="color: #000000;">&#125;</span>

csharp 自动版本控制

通过修改AssemblyInfo文件中的一行来演示如何自动化版本控制。

<span style="color: #008080; font-style: italic;">// Modify the AssemblyVersion line in the </span>
<span style="color: #008080; font-style: italic;">// &quot;AssemblyInfo.cs&quot; file:</span>
&nbsp;
<span style="color: #008080; font-style: italic;">// Add a &quot;*&quot; to the section you want to increase automatically</span>
<span style="color: #000000;">&#91;</span>assembly: AssemblyVersion<span style="color: #000000;">&#40;</span><span style="color: #808080;">&quot;0.9.0.*&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#93;</span>
&nbsp;
<span style="color: #008080; font-style: italic;">// Remove this if you add the star</span>
<span style="color: #008080; font-style: italic;">//[assembly: AssemblyFileVersion(&quot;1.0.0.0&quot;)]</span>
&nbsp;
<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;">&#40;</span><span style="color: #0600FF;">this</span>.<span style="color: #0000FF;">ProductVersion</span><span style="color: #000000;">&#41;</span>;
<span style="color: #008080; font-style: italic;">// &quot;this&quot; contains the the current &quot;Form&quot; 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;">&#91;</span>Serializable<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#93;</span>
<span style="color: #0600FF;">public</span> <span style="color: #FF0000;">class</span> TestClass
<span style="color: #000000;">&#123;</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;">&#123;</span>
        get <span style="color: #000000;">&#123;</span> <span style="color: #0600FF;">return</span> someString; <span style="color: #000000;">&#125;</span>
        set <span style="color: #000000;">&#123;</span> someString = value; <span style="color: #000000;">&#125;</span>
    <span style="color: #000000;">&#125;</span>
&nbsp;
    <span style="color: #0600FF;">private</span> List&lt;string&gt; settings = <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color: #008000;">new</span></a> List&lt;string&gt;<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
    <span style="color: #0600FF;">public</span> List&lt;string&gt; Settings
    <span style="color: #000000;">&#123;</span>
        get <span style="color: #000000;">&#123;</span> <span style="color: #0600FF;">return</span> settings; <span style="color: #000000;">&#125;</span>
        set <span style="color: #000000;">&#123;</span> settings = value; <span style="color: #000000;">&#125;</span>
    <span style="color: #000000;">&#125;</span>
&nbsp;
    <span style="color: #008080; font-style: italic;">// These will be ignored</span>
    <span style="color: #000000;">&#91;</span>NonSerialized<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#93;</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>;
&nbsp;
<span style="color: #000000;">&#125;</span>
&nbsp;
<span style="color: #008080; font-style: italic;">// Example code</span>
&nbsp;
<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>
&nbsp;
<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;">&#40;</span><span style="color: #000000;">&#41;</span>;
&nbsp;
<span style="color: #008080; font-style: italic;">// Set some dummy values</span>
TestObj.<span style="color: #0000FF;">SomeString</span> = <span style="color: #808080;">&quot;foo&quot;</span>;
&nbsp;
TestObj.<span style="color: #0000FF;">Settings</span>.<span style="color: #0000FF;">Add</span><span style="color: #000000;">&#40;</span><span style="color: #808080;">&quot;A&quot;</span><span style="color: #000000;">&#41;</span>;
TestObj.<span style="color: #0000FF;">Settings</span>.<span style="color: #0000FF;">Add</span><span style="color: #000000;">&#40;</span><span style="color: #808080;">&quot;B&quot;</span><span style="color: #000000;">&#41;</span>;
TestObj.<span style="color: #0000FF;">Settings</span>.<span style="color: #0000FF;">Add</span><span style="color: #000000;">&#40;</span><span style="color: #808080;">&quot;C&quot;</span><span style="color: #000000;">&#41;</span>;
&nbsp;
&nbsp;
<span style="color: #008080;">#region Save the object</span>
&nbsp;
<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;">&#40;</span><a href="http://www.google.com/search?q=typeof+msdn.microsoft.com"><span style="color: #008000;">typeof</span></a><span style="color: #000000;">&#40;</span>TestClass<span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>;
&nbsp;
<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;">&#40;</span><span style="color: #808080;">@"C:\test.xml&quot;</span><span style="color: #000000;">&#41;</span>;
SerializerObj.<span style="color: #0000FF;">Serialize</span><span style="color: #000000;">&#40;</span>WriteFileStream, TestObj<span style="color: #000000;">&#41;</span>;
&nbsp;
<span style="color: #008080; font-style: italic;">// Cleanup</span>
WriteFileStream.<span style="color: #0000FF;">Close</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
&nbsp;
<span style="color: #008080;">#endregion</span>
&nbsp;
&nbsp;
<span style="color: #008080; font-style: italic;">/*
The test.xml file will look like this:
&nbsp;
&lt;?xml version=&quot;1.0&quot;?&gt;
&lt;TestClass xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xmlns:xsd=&quot;http://www.w3.org/2001/XMLSchema&quot;&gt;
  &lt;SomeString&gt;foo&lt;/SomeString&gt;
  &lt;Settings&gt;
    &lt;string&gt;A&lt;/string&gt;
    &lt;string&gt;B&lt;/string&gt;
    &lt;string&gt;C&lt;/string&gt;
  &lt;/Settings&gt;
&lt;/TestClass&gt;		 
*/</span>
&nbsp;
<span style="color: #008080;">#region Load the object</span>
&nbsp;
<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;">&#40;</span><span style="color: #808080;">@"C:\test.xml&quot;</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;">&#41;</span>;
&nbsp;
<span style="color: #008080; font-style: italic;">// Load the object saved above by using the Deserialize function</span>
TestClass LoadedObj = <span style="color: #000000;">&#40;</span>TestClass<span style="color: #000000;">&#41;</span>SerializerObj.<span style="color: #0000FF;">Deserialize</span><span style="color: #000000;">&#40;</span>ReadFileStream<span style="color: #000000;">&#41;</span>;
&nbsp;
<span style="color: #008080; font-style: italic;">// Cleanup</span>
ReadFileStream.<span style="color: #0000FF;">Close</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
&nbsp;
<span style="color: #008080;">#endregion</span>
&nbsp;
&nbsp;
<span style="color: #008080; font-style: italic;">// Test the new loaded object:</span>
MessageBox.<span style="color: #0000FF;">Show</span><span style="color: #000000;">&#40;</span>LoadedObj.<span style="color: #0000FF;">SomeString</span><span style="color: #000000;">&#41;</span>;
&nbsp;
<span style="color: #0600FF;">foreach</span> <span style="color: #000000;">&#40;</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;">&#41;</span>
    MessageBox.<span style="color: #0000FF;">Show</span><span style="color: #000000;">&#40;</span>Setting<span style="color: #000000;">&#41;</span>;

csharp 是文件夹

这是一个小辅助函数,用于检查给定的<br/>路径是文件夹还是文件。

<span style="color: #008080; font-style: italic;">/// &lt;summary&gt;</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;">/// &lt;/summary&gt;</span>
<span style="color: #008080; font-style: italic;">/// &lt;param name=&quot;Path&quot;&gt;File path&lt;/param&gt;</span>
<span style="color: #008080; font-style: italic;">/// &lt;returns&gt;True if a folder&lt;/returns&gt;</span>
<span style="color: #0600FF;">public</span> <span style="color: #FF0000;">bool</span> IsFolder<span style="color: #000000;">&#40;</span><span style="color: #FF0000;">string</span> path<span style="color: #000000;">&#41;</span>
<span style="color: #000000;">&#123;</span>
    <span style="color: #0600FF;">return</span> <span style="color: #000000;">&#40;</span><span style="color: #000000;">&#40;</span>File.<span style="color: #0000FF;">GetAttributes</span><span style="color: #000000;">&#40;</span>path<span style="color: #000000;">&#41;</span> &amp; FileAttributes.<span style="color: #0000FF;">Directory</span><span style="color: #000000;">&#41;</span> == FileAttributes.<span style="color: #0000FF;">Directory</span><span style="color: #000000;">&#41;</span>;
<span style="color: #000000;">&#125;</span>

csharp 下载网页

此示例显示如何在字符串中下载和存储网页<br/>的内容。

<span style="color: #008080; font-style: italic;">/// &lt;summary&gt;</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;">/// &lt;/summary&gt;</span>
<span style="color: #008080; font-style: italic;">/// &lt;param name=&quot;Url&quot;&gt;URL of the webpage&lt;/param&gt;</span>
<span style="color: #008080; font-style: italic;">/// &lt;returns&gt;Website content&lt;/returns&gt;</span>
<span style="color: #0600FF;">public</span> <span style="color: #FF0000;">string</span> DownloadWebPage<span style="color: #000000;">&#40;</span><span style="color: #FF0000;">string</span> Url<span style="color: #000000;">&#41;</span>
<span style="color: #000000;">&#123;</span>
    <span style="color: #008080; font-style: italic;">// Open a connection</span>
    HttpWebRequest WebRequestObject = <span style="color: #000000;">&#40;</span>HttpWebRequest<span style="color: #000000;">&#41;</span>HttpWebRequest.<span style="color: #0000FF;">Create</span><span style="color: #000000;">&#40;</span>Url<span style="color: #000000;">&#41;</span>;
&nbsp;
    <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;">&quot;.NET Framework/2.0&quot;</span>;
    WebRequestObject.<span style="color: #0000FF;">Referer</span>	= <span style="color: #808080;">&quot;http://www.example.com/&quot;</span>;
&nbsp;
    <span style="color: #008080; font-style: italic;">// Request response:</span>
    WebResponse Response = WebRequestObject.<span style="color: #0000FF;">GetResponse</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
&nbsp;
    <span style="color: #008080; font-style: italic;">// Open data stream:</span>
    Stream WebStream = Response.<span style="color: #0000FF;">GetResponseStream</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
&nbsp;
    <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;">&#40;</span>WebStream<span style="color: #000000;">&#41;</span>;
&nbsp;
    <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;">&#40;</span><span style="color: #000000;">&#41;</span>;
&nbsp;
    <span style="color: #008080; font-style: italic;">// Cleanup</span>
    Reader.<span style="color: #0000FF;">Close</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
    WebStream.<span style="color: #0000FF;">Close</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
    Response.<span style="color: #0000FF;">Close</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
&nbsp;
    <span style="color: #0600FF;">return</span> PageContent;
<span style="color: #000000;">&#125;</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;">// &quot;Thread.Sleep&quot; function</span>
<span style="color: #008080; font-style: italic;">// using System.Threading;</span>
&nbsp;
<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>;
&nbsp;
<span style="color: #0600FF;">this</span>.<span style="color: #0000FF;">progressBar</span>.<span style="color: #0000FF;">Maximum</span> = <span style="color: #FF0000;">100</span>;
&nbsp;
<span style="color: #008080; font-style: italic;">// Loop 100 times</span>
<span style="color: #0600FF;">for</span> <span style="color: #000000;">&#40;</span><span style="color: #FF0000;">int</span> i = <span style="color: #FF0000;">0</span>; <span style="color: #000000;">&#40;</span>i &lt; <span style="color: #FF0000;">100</span> &amp;&amp; !UserHitCancel<span style="color: #000000;">&#41;</span>; i++<span style="color: #000000;">&#41;</span>
<span style="color: #000000;">&#123;</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;
&nbsp;
    <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;">&#40;</span><span style="color: #000000;">&#41;</span>;
&nbsp;
    <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;">&#40;</span>TimeSpan.<span style="color: #0000FF;">FromMilliseconds</span><span style="color: #000000;">&#40;</span><span style="color: #FF0000;">50</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>;
<span style="color: #000000;">&#125;</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;">&#40;</span><span style="color: #FF0000;">string</span> Url<span style="color: #000000;">&#41;</span>
<span style="color: #000000;">&#123;</span>
    <span style="color: #0600FF;">if</span> <span style="color: #000000;">&#40;</span>!Url.<span style="color: #0000FF;">Contains</span><span style="color: #000000;">&#40;</span><span style="color: #808080;">&quot;://&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>
        Url = <span style="color: #808080;">&quot;http://&quot;</span> + Url;
&nbsp;
    <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;">&#40;</span>Url<span style="color: #000000;">&#41;</span>.<span style="color: #0000FF;">Host</span>;
<span style="color: #000000;">&#125;</span>
&nbsp;
<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;">&#40;</span><span style="color: #FF0000;">string</span> Url<span style="color: #000000;">&#41;</span>
<span style="color: #000000;">&#123;</span>
    <span style="color: #0600FF;">if</span> <span style="color: #000000;">&#40;</span>Url.<span style="color: #0000FF;">Contains</span><span style="color: #000000;">&#40;</span><span style="color: #808080;">@"://&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>
        Url = Url.<span style="color: #0000FF;">Split</span><span style="color: #000000;">&#40;</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;">&#91;</span><span style="color: #000000;">&#93;</span> <span style="color: #000000;">&#123;</span> <span style="color: #808080;">&quot;://&quot;</span> <span style="color: #000000;">&#125;</span>, <span style="color: #FF0000;">2</span>, StringSplitOptions.<span style="color: #0000FF;">None</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#91;</span><span style="color: #FF0000;">1</span><span style="color: #000000;">&#93;</span>;
&nbsp;
    <span style="color: #0600FF;">return</span> Url.<span style="color: #0000FF;">Split</span><span style="color: #000000;">&#40;</span><span style="color: #808080;">'/'</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#91;</span><span style="color: #FF0000;">0</span><span style="color: #000000;">&#93;</span>;
<span style="color: #000000;">&#125;</span>
&nbsp;
<span style="color: #008080; font-style: italic;">/*
** Method 3 (using regular expressions -&gt; 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;">&#40;</span><span style="color: #FF0000;">string</span> Url<span style="color: #000000;">&#41;</span>
<span style="color: #000000;">&#123;</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;">&#40;</span>
        Url, 
        <span style="color: #808080;">@"^([a-zA-Z]+:\/\/)?([^\/]+)\/.*?$&quot;</span>, 
        <span style="color: #808080;">&quot;$2&quot;</span>
    <span style="color: #000000;">&#41;</span>;
<span style="color: #000000;">&#125;</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;">&#40;</span><span style="color: #FF0000;">object</span> sender, EventArgs e<span style="color: #000000;">&#41;</span>
<span style="color: #000000;">&#123;</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>;
&nbsp;
    <span style="color: #008080; font-style: italic;">// Add event handlers for the drag &amp; 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;">&#40;</span>Form_DragEnter<span style="color: #000000;">&#41;</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;">&#40;</span>Form_DragDrop<span style="color: #000000;">&#41;</span>;
<span style="color: #000000;">&#125;</span>
&nbsp;
<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;">&#40;</span><span style="color: #FF0000;">object</span> sender, DragEventArgs e<span style="color: #000000;">&#41;</span>
<span style="color: #000000;">&#123;</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;">&#40;</span>e.<span style="color: #0000FF;">Data</span>.<span style="color: #0000FF;">GetDataPresent</span><span style="color: #000000;">&#40;</span>DataFormats.<span style="color: #0000FF;">FileDrop</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</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>
&nbsp;
<span style="color: #000000;">&#125;</span>
&nbsp;
<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;">&#40;</span><span style="color: #FF0000;">object</span> sender, DragEventArgs e<span style="color: #000000;">&#41;</span>
<span style="color: #000000;">&#123;</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;">&#91;</span><span style="color: #000000;">&#93;</span> FileList = <span style="color: #000000;">&#40;</span><span style="color: #FF0000;">string</span><span style="color: #000000;">&#91;</span><span style="color: #000000;">&#93;</span><span style="color: #000000;">&#41;</span>e.<span style="color: #0000FF;">Data</span>.<span style="color: #0000FF;">GetData</span><span style="color: #000000;">&#40;</span>DataFormats.<span style="color: #0000FF;">FileDrop</span>, <span style="color: #0600FF;">false</span><span style="color: #000000;">&#41;</span>;
&nbsp;
    <span style="color: #008080; font-style: italic;">// Do something with the data...</span>
&nbsp;
    <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;">&#40;</span><span style="color: #FF0000;">string</span> File <span style="color: #0600FF;">in</span> FileList<span style="color: #000000;">&#41;</span>
        <span style="color: #0600FF;">this</span>.<span style="color: #0000FF;">label</span>.<span style="color: #0000FF;">Text</span> += File + <span style="color: #808080;">&quot;<span style="color: #008080; font-weight: bold;">\n</span>&quot;</span>;
<span style="color: #000000;">&#125;</span>