csharp 使用列表和代理
显示如何使用委托删除,修改和检查列表中的项目的简单示例。
<span style="color: #FF0000;">class</span> Program
<span style="color: #000000;">{</span>
<span style="color: #0600FF;">static</span> <span style="color: #0600FF;">void</span> Main<span style="color: #000000;">(</span><span style="color: #FF0000;">string</span><span style="color: #000000;">[</span><span style="color: #000000;">]</span> args<span style="color: #000000;">)</span>
<span style="color: #000000;">{</span>
<span style="color: #008080; font-style: italic;">//</span>
<span style="color: #008080; font-style: italic;">// Example list </span>
<span style="color: #008080; font-style: italic;">//</span>
List<Person> Persons = <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color: #008000;">new</span></a> List<Person><span style="color: #000000;">(</span><span style="color: #000000;">)</span>;
Persons.<span style="color: #0000FF;">Add</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> Person<span style="color: #000000;">(</span><span style="color: #808080;">"Jonas"</span>, <span style="color: #FF0000;">22</span><span style="color: #000000;">)</span><span style="color: #000000;">)</span>;
Persons.<span style="color: #0000FF;">Add</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> Person<span style="color: #000000;">(</span><span style="color: #808080;">"Peter"</span>, <span style="color: #FF0000;">19</span><span style="color: #000000;">)</span><span style="color: #000000;">)</span>;
Persons.<span style="color: #0000FF;">Add</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> Person<span style="color: #000000;">(</span><span style="color: #808080;">"Daniel"</span>, <span style="color: #FF0000;">20</span><span style="color: #000000;">)</span><span style="color: #000000;">)</span>;
Persons.<span style="color: #0000FF;">Add</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> Person<span style="color: #000000;">(</span><span style="color: #808080;">"Yvonne"</span>, <span style="color: #FF0000;">18</span><span style="color: #000000;">)</span><span style="color: #000000;">)</span>;
Persons.<span style="color: #0000FF;">Add</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> Person<span style="color: #000000;">(</span><span style="color: #808080;">"Jana"</span>, <span style="color: #FF0000;">26</span><span style="color: #000000;">)</span><span style="color: #000000;">)</span>;
<span style="color: #008080; font-style: italic;">// Removes all persons younger than 20 years</span>
Persons.<span style="color: #0000FF;">RemoveAll</span><span style="color: #000000;">(</span><span style="color: #FF0000;">delegate</span><span style="color: #000000;">(</span>Person P<span style="color: #000000;">)</span>
<span style="color: #000000;">{</span>
<span style="color: #0600FF;">return</span> <span style="color: #000000;">(</span>P.<span style="color: #0000FF;">Age</span> < <span style="color: #FF0000;">20</span><span style="color: #000000;">)</span>;
<span style="color: #000000;">}</span><span style="color: #000000;">)</span>;
<span style="color: #008080; font-style: italic;">// Searches for specific entries and returns a list of</span>
<span style="color: #008080; font-style: italic;">// them</span>
List<Person> NewList = Persons.<span style="color: #0000FF;">FindAll</span><span style="color: #000000;">(</span><span style="color: #FF0000;">delegate</span><span style="color: #000000;">(</span>Person P<span style="color: #000000;">)</span>
<span style="color: #000000;">{</span>
<span style="color: #0600FF;">return</span> <span style="color: #000000;">(</span>P.<span style="color: #0000FF;">Age</span> > <span style="color: #FF0000;">25</span><span style="color: #000000;">)</span>;
<span style="color: #000000;">}</span><span style="color: #000000;">)</span>;
<span style="color: #008080; font-style: italic;">// Loops trough every item and modifies the</span>
<span style="color: #008080; font-style: italic;">// entries</span>
Persons.<span style="color: #0600FF;">ForEach</span><span style="color: #000000;">(</span><span style="color: #FF0000;">delegate</span><span style="color: #000000;">(</span>Person P<span style="color: #000000;">)</span><span style="color: #000000;">{</span>
P.<span style="color: #0000FF;">Name</span> = <span style="color: #808080;">"<"</span> + P.<span style="color: #0000FF;">Name</span> + <span style="color: #808080;">">"</span>;
<span style="color: #000000;">}</span><span style="color: #000000;">)</span>;
<span style="color: #008080; font-style: italic;">// Returns true or false if a specific entry is found</span>
<span style="color: #FF0000;">bool</span> Contains = Persons.<span style="color: #0000FF;">Exists</span><span style="color: #000000;">(</span><span style="color: #FF0000;">delegate</span><span style="color: #000000;">(</span>Person P<span style="color: #000000;">)</span>
<span style="color: #000000;">{</span>
<span style="color: #0600FF;">return</span> <span style="color: #000000;">(</span>P.<span style="color: #0000FF;">Age</span> > <span style="color: #FF0000;">25</span><span style="color: #000000;">)</span>;
<span style="color: #000000;">}</span><span style="color: #000000;">)</span>;
<span style="color: #008080; font-style: italic;">// Print the new list</span>
<span style="color: #0600FF;">foreach</span> <span style="color: #000000;">(</span>Person PersonObject <span style="color: #0600FF;">in</span> NewList<span style="color: #000000;">)</span>
Console.<span style="color: #0000FF;">WriteLine</span><span style="color: #000000;">(</span>PersonObject<span style="color: #000000;">)</span>;
<span style="color: #000000;">}</span>
<span style="color: #000000;">}</span>
<span style="color: #008080; font-style: italic;">// Example class</span>
<span style="color: #0600FF;">public</span> <span style="color: #FF0000;">class</span> Person
<span style="color: #000000;">{</span>
<span style="color: #0600FF;">private</span> <span style="color: #FF0000;">string</span> name = <span style="color: #808080;">""</span>;
<span style="color: #0600FF;">public</span> <span style="color: #FF0000;">string</span> Name
<span style="color: #000000;">{</span>
get <span style="color: #000000;">{</span> <span style="color: #0600FF;">return</span> name;<span style="color: #000000;">}</span>
set <span style="color: #000000;">{</span> name = value;<span style="color: #000000;">}</span>
<span style="color: #000000;">}</span>
<span style="color: #0600FF;">private</span> <span style="color: #FF0000;">int</span> age = <span style="color: #FF0000;">0</span>;
<span style="color: #0600FF;">public</span> <span style="color: #FF0000;">int</span> Age
<span style="color: #000000;">{</span>
get <span style="color: #000000;">{</span> <span style="color: #0600FF;">return</span> age; <span style="color: #000000;">}</span>
set <span style="color: #000000;">{</span> age = value; <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;">/// Constructor</span>
<span style="color: #008080; font-style: italic;">/// </summary></span>
<span style="color: #008080; font-style: italic;">/// <param name="Name"></param></span>
<span style="color: #008080; font-style: italic;">/// <param name="Age"></param></span>
<span style="color: #0600FF;">public</span> Person<span style="color: #000000;">(</span><span style="color: #FF0000;">string</span> Name, <span style="color: #FF0000;">int</span> Age<span style="color: #000000;">)</span>
<span style="color: #000000;">{</span>
<span style="color: #0600FF;">this</span>.<span style="color: #0000FF;">name</span> = Name;
<span style="color: #0600FF;">this</span>.<span style="color: #0000FF;">age</span> = Age;
<span style="color: #000000;">}</span>
<span style="color: #008080; font-style: italic;">/// <summary></span>
<span style="color: #008080; font-style: italic;">/// Overrides the default ToString method with</span>
<span style="color: #008080; font-style: italic;">/// a custom one</span>
<span style="color: #008080; font-style: italic;">/// </summary></span>
<span style="color: #008080; font-style: italic;">/// <returns></returns></span>
<span style="color: #0600FF;">public</span> <span style="color: #0600FF;">override</span> <span style="color: #FF0000;">string</span> ToString<span style="color: #000000;">(</span><span style="color: #000000;">)</span>
<span style="color: #000000;">{</span>
<span style="color: #0600FF;">return</span> <span style="color: #FF0000;">String</span>.<span style="color: #0000FF;">Format</span><span style="color: #000000;">(</span><span style="color: #808080;">"{0} ({1})"</span>, <span style="color: #0600FF;">this</span>.<span style="color: #0000FF;">Name</span>, <span style="color: #0600FF;">this</span>.<span style="color: #0000FF;">Age</span><span style="color: #000000;">)</span>;
<span style="color: #000000;">}</span>
<span style="color: #000000;">}</span>
csharp 运行没有DOS框的控制台应用程序
该示例显示了如何在没有DOS框的情况下运行控制台应用程序。<br/> <br/>它还显示了如何检索控制台输出。
<span style="color: #008080; font-style: italic;">// This snippet needs the "System.Diagnostics"</span>
<span style="color: #008080; font-style: italic;">// library</span>
<span style="color: #008080; font-style: italic;">// Application path and command line arguments</span>
<span style="color: #FF0000;">string</span> ApplicationPath = <span style="color: #808080;">"C:<span style="color: #008080; font-weight: bold;">\\</span>example.exe"</span>;
<span style="color: #FF0000;">string</span> ApplicationArguments = <span style="color: #808080;">"-c -x"</span>;
<span style="color: #008080; font-style: italic;">// Create a new process object</span>
Process ProcessObj = <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color: #008000;">new</span></a> Process<span style="color: #000000;">(</span><span style="color: #000000;">)</span>;
<span style="color: #008080; font-style: italic;">// StartInfo contains the startup information of</span>
<span style="color: #008080; font-style: italic;">// the new process</span>
ProcessObj.<span style="color: #0000FF;">StartInfo</span>.<span style="color: #0000FF;">FileName</span> = ApplicationPath;
ProcessObj.<span style="color: #0000FF;">StartInfo</span>.<span style="color: #0000FF;">Arguments</span> = ApplicationArguments;
<span style="color: #008080; font-style: italic;">// These two optional flags ensure that no DOS window</span>
<span style="color: #008080; font-style: italic;">// appears</span>
ProcessObj.<span style="color: #0000FF;">StartInfo</span>.<span style="color: #0000FF;">UseShellExecute</span> = <span style="color: #0600FF;">false</span>;
ProcessObj.<span style="color: #0000FF;">StartInfo</span>.<span style="color: #0000FF;">CreateNoWindow</span> = <span style="color: #0600FF;">true</span>;
<span style="color: #008080; font-style: italic;">// If this option is set the DOS window appears again :-/</span>
<span style="color: #008080; font-style: italic;">// ProcessObj.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;</span>
<span style="color: #008080; font-style: italic;">// This ensures that you get the output from the DOS application</span>
ProcessObj.<span style="color: #0000FF;">StartInfo</span>.<span style="color: #0000FF;">RedirectStandardOutput</span> = <span style="color: #0600FF;">true</span>;
<span style="color: #008080; font-style: italic;">// Start the process</span>
ProcessObj.<span style="color: #0000FF;">Start</span><span style="color: #000000;">(</span><span style="color: #000000;">)</span>;
<span style="color: #008080; font-style: italic;">// Wait that the process exits</span>
ProcessObj.<span style="color: #0000FF;">WaitForExit</span><span style="color: #000000;">(</span><span style="color: #000000;">)</span>;
<span style="color: #008080; font-style: italic;">// Now read the output of the DOS application</span>
<span style="color: #FF0000;">string</span> Result = ProcessObj.<span style="color: #0000FF;">StandardOutput</span>.<span style="color: #0000FF;">ReadToEnd</span><span style="color: #000000;">(</span><span style="color: #000000;">)</span>;
csharp 在实际控制之前捕捉击键
此示例显示了如何在转发到实际控件之前捕获键击<br/>。<br/> <br/>如果您想要执行自己的操作,这可能很有用,<br/>在实际操作之前控制得到他们。
<span style="color: #008080; font-style: italic;">// KeyDown event of some control</span>
<span style="color: #0600FF;">private</span> <span style="color: #0600FF;">void</span> SomeControl_KeyDown<span style="color: #000000;">(</span><span style="color: #FF0000;">object</span> sender, KeyEventArgs e<span style="color: #000000;">)</span>
<span style="color: #000000;">{</span>
<span style="color: #008080; font-style: italic;">// 1. Event is called directly after the key stroke</span>
<span style="color: #008080; font-style: italic;">// If the user hits Enter, we catch the</span>
<span style="color: #008080; font-style: italic;">// event and do our own things</span>
<span style="color: #0600FF;">if</span> <span style="color: #000000;">(</span>e.<span style="color: #0000FF;">KeyCode</span> == Keys.<span style="color: #0000FF;">Enter</span><span style="color: #000000;">)</span>
<span style="color: #000000;">{</span>
<span style="color: #008080; font-style: italic;">// Suppress key stroke, so that</span>
<span style="color: #008080; font-style: italic;">// the control don't receives it</span>
e.<span style="color: #0000FF;">SuppressKeyPress</span> = <span style="color: #0600FF;">true</span>;
<span style="color: #008080; font-style: italic;">// Perform something important...</span>
<span style="color: #000000;">}</span>
<span style="color: #000000;">}</span>
<span style="color: #008080; font-style: italic;">// KeyPress event of some control</span>
<span style="color: #0600FF;">private</span> <span style="color: #0600FF;">void</span> SomeControl_KeyPress<span style="color: #000000;">(</span><span style="color: #FF0000;">object</span> sender, KeyPressEventArgs e<span style="color: #000000;">)</span>
<span style="color: #000000;">{</span>
<span style="color: #008080; font-style: italic;">// 2. Event is called during the key stroke</span>
<span style="color: #000000;">}</span>
<span style="color: #008080; font-style: italic;">// KeyUp event of some control</span>
<span style="color: #0600FF;">private</span> <span style="color: #0600FF;">void</span> SomeControl_KeyUp<span style="color: #000000;">(</span><span style="color: #FF0000;">object</span> sender, KeyEventArgs e<span style="color: #000000;">)</span>
<span style="color: #000000;">{</span>
<span style="color: #008080; font-style: italic;">// 3. Event is called after the key stroke </span>
<span style="color: #000000;">}</span>
csharp 测试一段时间是否重叠
显示如何测试两个给定时间段是否相互重叠。
<span style="color: #008080; font-style: italic;">/// <summary></span>
<span style="color: #008080; font-style: italic;">/// Tests if two given periods overlap each other.</span>
<span style="color: #008080; font-style: italic;">/// </summary></span>
<span style="color: #008080; font-style: italic;">/// <param name="BS">Base period start</param></span>
<span style="color: #008080; font-style: italic;">/// <param name="BE">Base period end</param></span>
<span style="color: #008080; font-style: italic;">/// <param name="TS">Test period start</param></span>
<span style="color: #008080; font-style: italic;">/// <param name="TE">Test period end</param></span>
<span style="color: #008080; font-style: italic;">/// <returns></span>
<span style="color: #008080; font-style: italic;">/// <c>true</c> if the periods overlap; otherwise, <c>false</c>.</span>
<span style="color: #008080; font-style: italic;">/// </returns></span>
<span style="color: #0600FF;">public</span> <span style="color: #FF0000;">bool</span> TimePeriodOverlap<span style="color: #000000;">(</span>DateTime BS, DateTime BE, DateTime TS, DateTime TE<span style="color: #000000;">)</span>
<span style="color: #000000;">{</span>
<span style="color: #008080; font-style: italic;">// More simple?</span>
<span style="color: #008080; font-style: italic;">// return !((TS < BS && TE < BS) || (TS > BE && TE > BE));</span>
<span style="color: #008080; font-style: italic;">// The version below, without comments </span>
<span style="color: #008080; font-style: italic;">/*
return (
(TS >= BS && TS < BE) || (TE <= BE && TE > BS) || (TS <= BS && TE >= BE)
);
*/</span>
<span style="color: #0600FF;">return</span> <span style="color: #000000;">(</span>
<span style="color: #008080; font-style: italic;">// 1. Case:</span>
<span style="color: #008080; font-style: italic;">//</span>
<span style="color: #008080; font-style: italic;">// TS-------TE</span>
<span style="color: #008080; font-style: italic;">// BS------BE </span>
<span style="color: #008080; font-style: italic;">//</span>
<span style="color: #008080; font-style: italic;">// TS is after BS but before BE</span>
<span style="color: #000000;">(</span>TS >= BS && TS < BE<span style="color: #000000;">)</span>
|| <span style="color: #008080; font-style: italic;">// or</span>
<span style="color: #008080; font-style: italic;">// 2. Case</span>
<span style="color: #008080; font-style: italic;">//</span>
<span style="color: #008080; font-style: italic;">// TS-------TE</span>
<span style="color: #008080; font-style: italic;">// BS---------BE</span>
<span style="color: #008080; font-style: italic;">//</span>
<span style="color: #008080; font-style: italic;">// TE is before BE but after BS</span>
<span style="color: #000000;">(</span>TE <= BE && TE > BS<span style="color: #000000;">)</span>
|| <span style="color: #008080; font-style: italic;">// or</span>
<span style="color: #008080; font-style: italic;">// 3. Case</span>
<span style="color: #008080; font-style: italic;">//</span>
<span style="color: #008080; font-style: italic;">// TS----------TE</span>
<span style="color: #008080; font-style: italic;">// BS----BE</span>
<span style="color: #008080; font-style: italic;">//</span>
<span style="color: #008080; font-style: italic;">// TS is before BS and TE is after BE</span>
<span style="color: #000000;">(</span>TS <= BS && TE >= BE<span style="color: #000000;">)</span>
<span style="color: #000000;">)</span>;
<span style="color: #000000;">}</span>
csharp 聚焦Windows窗体的控件
显示如何将控件聚焦在Windows窗体中。<br/> <br/>如果您正在使用Web窗体,这非常简单,<br/>您只需使用“WebControl.Focus()”但这不是<br/>适用于Windows Forms ...
<span style="color: #008080; font-style: italic;">// A example event:</span>
<span style="color: #0600FF;">private</span> <span style="color: #0600FF;">void</span> btnExampleCommand_Click<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;">// That's all:</span>
<span style="color: #0600FF;">this</span>.<span style="color: #0000FF;">ActiveControl</span> = <span style="color: #0600FF;">this</span>.<span style="color: #0000FF;">SomeControlObject</span>;
<span style="color: #008080; font-style: italic;">// This line focuses a control</span>
<span style="color: #000000;">}</span>
csharp 如何使用十六进制颜色
此示例显示如何将十六进制颜色转换为将HTML中使用的<br/>转换为.NET颜色对象,反之亦然。
<span style="color: #008080; font-style: italic;">// By using the ColorTranslator you can easily convert color values</span>
<span style="color: #008080; font-style: italic;">// definied in the hexadecimal format (like it is used in HTML)</span>
Color Color1 = <span style="color: #000000;">System</span>.<span style="color: #0000FF;">Drawing</span>.<span style="color: #0000FF;">ColorTranslator</span>.<span style="color: #0000FF;">FromHtml</span><span style="color: #000000;">(</span><span style="color: #808080;">"#EEEEEE"</span><span style="color: #000000;">)</span>;
Color Color2 = <span style="color: #000000;">System</span>.<span style="color: #0000FF;">Drawing</span>.<span style="color: #0000FF;">ColorTranslator</span>.<span style="color: #0000FF;">FromHtml</span><span style="color: #000000;">(</span><span style="color: #808080;">"red"</span><span style="color: #000000;">)</span>;
<span style="color: #008080; font-style: italic;">/*
** Convert back:
*/</span>
<span style="color: #FF0000;">string</span> Color1a = <span style="color: #000000;">System</span>.<span style="color: #0000FF;">Drawing</span>.<span style="color: #0000FF;">ColorTranslator</span>.<span style="color: #0000FF;">ToHtml</span><span style="color: #000000;">(</span>Color1<span style="color: #000000;">)</span>;
<span style="color: #008080; font-style: italic;">// --> "#EEEEEE"</span>
<span style="color: #FF0000;">string</span> Color2a = <span style="color: #000000;">System</span>.<span style="color: #0000FF;">Drawing</span>.<span style="color: #0000FF;">ColorTranslator</span>.<span style="color: #0000FF;">ToHtml</span><span style="color: #000000;">(</span>Color2<span style="color: #000000;">)</span>;
<span style="color: #008080; font-style: italic;">// --> "Red"</span>
<span style="color: #FF0000;">string</span> Color2b = <span style="color: #FF0000;">String</span>.<span style="color: #0000FF;">Format</span><span style="color: #000000;">(</span><span style="color: #808080;">"#{0:X2}{1:X2}{2:X2}"</span>, Color2.<span style="color: #0000FF;">R</span>, Color2.<span style="color: #0000FF;">G</span>, Color2.<span style="color: #0000FF;">B</span><span style="color: #000000;">)</span>;
<span style="color: #008080; font-style: italic;">// --> "#FF0000"</span>
csharp 随机助手类
一个简单的类,提供经常需要的方法,如<br/>创建随机字符串,数字,颜色和布尔值。准备复制和粘贴:)
<span style="color: #008080; font-style: italic;">/// <summary></span>
<span style="color: #008080; font-style: italic;">/// Helper class for generating random values</span>
<span style="color: #008080; font-style: italic;">/// </summary></span>
<span style="color: #0600FF;">public</span> <span style="color: #0600FF;">static</span> <span style="color: #FF0000;">class</span> RandomHelper
<span style="color: #000000;">{</span>
<span style="color: #0600FF;">private</span> <span style="color: #0600FF;">static</span> Random randomSeed = <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color: #008000;">new</span></a> Random<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;">/// Generates a random string with the given length</span>
<span style="color: #008080; font-style: italic;">/// </summary></span>
<span style="color: #008080; font-style: italic;">/// <param name="size">Size of the string</param></span>
<span style="color: #008080; font-style: italic;">/// <param name="lowerCase">If true, generate lowercase string</param></span>
<span style="color: #008080; font-style: italic;">/// <returns>Random string</returns></span>
<span style="color: #0600FF;">public</span> <span style="color: #0600FF;">static</span> <span style="color: #FF0000;">string</span> RandomString<span style="color: #000000;">(</span><span style="color: #FF0000;">int</span> size, <span style="color: #FF0000;">bool</span> lowerCase<span style="color: #000000;">)</span>
<span style="color: #000000;">{</span>
<span style="color: #008080; font-style: italic;">// StringBuilder is faster than using strings (+=)</span>
StringBuilder RandStr = <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color: #008000;">new</span></a> StringBuilder<span style="color: #000000;">(</span>size<span style="color: #000000;">)</span>;
<span style="color: #008080; font-style: italic;">// Ascii start position (65 = A / 97 = a)</span>
<span style="color: #FF0000;">int</span> Start = <span style="color: #000000;">(</span>lowerCase<span style="color: #000000;">)</span> ? <span style="color: #FF0000;">97</span> : <span style="color: #FF0000;">65</span>;
<span style="color: #008080; font-style: italic;">// Add random chars</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>; i < size; i++<span style="color: #000000;">)</span>
RandStr.<span style="color: #0000FF;">Append</span><span style="color: #000000;">(</span><span style="color: #000000;">(</span><span style="color: #FF0000;">char</span><span style="color: #000000;">)</span><span style="color: #000000;">(</span><span style="color: #FF0000;">26</span> * randomSeed.<span style="color: #0000FF;">NextDouble</span><span style="color: #000000;">(</span><span style="color: #000000;">)</span> + Start<span style="color: #000000;">)</span><span style="color: #000000;">)</span>;
<span style="color: #0600FF;">return</span> RandStr.<span style="color: #0000FF;">ToString</span><span style="color: #000000;">(</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;">/// Returns a random number.</span>
<span style="color: #008080; font-style: italic;">/// </summary></span>
<span style="color: #008080; font-style: italic;">/// <param name="min">Minimal result</param></span>
<span style="color: #008080; font-style: italic;">/// <param name="max">Maximal result</param></span>
<span style="color: #008080; font-style: italic;">/// <returns>Random number</returns></span>
<span style="color: #0600FF;">public</span> <span style="color: #0600FF;">static</span> <span style="color: #FF0000;">int</span> RandomNumber<span style="color: #000000;">(</span><span style="color: #FF0000;">int</span> Minimal, <span style="color: #FF0000;">int</span> Maximal<span style="color: #000000;">)</span>
<span style="color: #000000;">{</span>
<span style="color: #0600FF;">return</span> randomSeed.<span style="color: #0000FF;">Next</span><span style="color: #000000;">(</span>Minimal, Maximal<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;">/// Returns a random boolean value</span>
<span style="color: #008080; font-style: italic;">/// </summary></span>
<span style="color: #008080; font-style: italic;">/// <returns>Random boolean value</returns></span>
<span style="color: #0600FF;">public</span> <span style="color: #0600FF;">static</span> <span style="color: #FF0000;">bool</span> RandomBool<span style="color: #000000;">(</span><span style="color: #000000;">)</span>
<span style="color: #000000;">{</span>
<span style="color: #0600FF;">return</span> <span style="color: #000000;">(</span>randomSeed.<span style="color: #0000FF;">NextDouble</span><span style="color: #000000;">(</span><span style="color: #000000;">)</span> > <span style="color: #FF0000;">0.5</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;">/// Returns a random color</span>
<span style="color: #008080; font-style: italic;">/// </summary></span>
<span style="color: #008080; font-style: italic;">/// <returns></returns></span>
<span style="color: #0600FF;">public</span> <span style="color: #0600FF;">static</span> <span style="color: #000000;">System</span>.<span style="color: #0000FF;">Drawing</span>.<span style="color: #0000FF;">Color</span> RandomColor<span style="color: #000000;">(</span><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;">Drawing</span>.<span style="color: #0000FF;">Color</span>.<span style="color: #0000FF;">FromArgb</span><span style="color: #000000;">(</span>
randomSeed.<span style="color: #0000FF;">Next</span><span style="color: #000000;">(</span><span style="color: #FF0000;">256</span><span style="color: #000000;">)</span>,
randomSeed.<span style="color: #0000FF;">Next</span><span style="color: #000000;">(</span><span style="color: #FF0000;">256</span><span style="color: #000000;">)</span>,
randomSeed.<span style="color: #0000FF;">Next</span><span style="color: #000000;">(</span><span style="color: #FF0000;">256</span><span style="color: #000000;">)</span>
<span style="color: #000000;">)</span>;
<span style="color: #000000;">}</span>
<span style="color: #000000;">}</span>
csharp 下个月更高的月份
此片段描述了如何在给定的日期时间之后找到下一个X天。<br/> <br/>这可能非常有用,例如,如果您想在接下来的第15天左右找到<br/>具体日期。
<span style="color: #008080; font-style: italic;">/// <summary></span>
<span style="color: #008080; font-style: italic;">/// Returns the next month day after the given DateTime.</span>
<span style="color: #008080; font-style: italic;">/// </summary></span>
<span style="color: #008080; font-style: italic;">/// <param name="T">Source DateTime</param></span>
<span style="color: #008080; font-style: italic;">/// <param name="D">Target month day</param></span>
<span style="color: #008080; font-style: italic;">/// <returns>DateTime</returns></span>
<span style="color: #0600FF;">public</span> DateTime NextHigherMonthDay<span style="color: #000000;">(</span>DateTime T, <span style="color: #FF0000;">int</span> D<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>T.<span style="color: #0000FF;">Day</span> >= D<span style="color: #000000;">)</span> ? T.<span style="color: #0000FF;">AddMonths</span><span style="color: #000000;">(</span><span style="color: #FF0000;">1</span><span style="color: #000000;">)</span> : T<span style="color: #000000;">)</span>.<span style="color: #0000FF;">AddDays</span><span style="color: #000000;">(</span>D-T.<span style="color: #0000FF;">Day</span><span style="color: #000000;">)</span>;
<span style="color: #000000;">}</span>
<span style="color: #008080; font-style: italic;">// With a minor change, you can create related functions like</span>
<span style="color: #008080; font-style: italic;">// the one below. I just changed the ">=" to ">" ...</span>
<span style="color: #0600FF;">public</span> DateTime NextHigherOrEqualMonthDay<span style="color: #000000;">(</span>DateTime T, <span style="color: #FF0000;">int</span> D<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>T.<span style="color: #0000FF;">Day</span> > D<span style="color: #000000;">)</span> ? T.<span style="color: #0000FF;">AddMonths</span><span style="color: #000000;">(</span><span style="color: #FF0000;">1</span><span style="color: #000000;">)</span> : T<span style="color: #000000;">)</span>.<span style="color: #0000FF;">AddDays</span><span style="color: #000000;">(</span>D - T.<span style="color: #0000FF;">Day</span><span style="color: #000000;">)</span>;
<span style="color: #000000;">}</span>
csharp 通过IP地址获取主机
显示如何从给定的IP地址检索主机名。
<span style="color: #FF0000;">string</span> IPAdress = <span style="color: #808080;">"127.0.0.1"</span>;
IPHostEntry IPHostEntryObject = Dns.<span style="color: #0000FF;">GetHostEntry</span><span style="color: #000000;">(</span>IPAdress<span style="color: #000000;">)</span>;
Console.<span style="color: #0000FF;">WriteLine</span><span style="color: #000000;">(</span>IPHostEntryObject.<span style="color: #0000FF;">HostName</span><span style="color: #000000;">)</span>;
csharp ScriptableObject Manager
ScriptableObjectManager.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
#region Checks type, creates SO instance, adds to visible list on SOManager
public class CheckClass <T>
{
T item;
static string ObjectName;
private void TypeStatus(string ClassName)
{
ObjectName = this.GetType().ToString();
if (ObjectName == "CheckClass`1[" + ClassName + "]")
{
// Debug.Log("Generic Class check is true");
}
}
public ScriptableObject CreateScriptableObject(string ObjectName)
{
List<ScriptableObject> ScriptableObjectList = ScriptableObjectManager.ScriptableObjectList;
ScriptableObject ObjectTest = AssetDatabase.LoadAssetAtPath<ScriptableObject>("Assets/ScriptableObjectsScene7/" + ObjectName + ".asset");
if (ObjectTest == null)
{
ObjectTest = ScriptableObject.CreateInstance(ObjectName);
ScriptableObjectList.Add(ObjectTest);
AssetDatabase.CreateAsset(ObjectTest, AssetDatabase.GenerateUniqueAssetPath("Assets/ScriptableObjectsScene7/" + ObjectName + ".asset"));
// Debug.Log("No Info found, new one created");
} else
{
ScriptableObject newObject = ScriptableObjectList.Find(x => x.name == ObjectName);
if (newObject == null)
{
ScriptableObjectList.Add(ObjectTest);
// Debug.Log("newObject == null");
} else
{
// Debug.Log("Found Object in list");
}
// Debug.Log(ScriptableObjectList.Count);
// Debug.Log(ObjectName + " has been found");
}
return ObjectTest;
}
}
#endregion
public class ScriptableObjectManager : MonoBehaviour
{
public static ScriptableObjectManager _instance;
public TopScrollInfoText TopScrollInfoText;
static TopScrollInfoText _topScrollInfoText;
//public ScriptableObject Test7;
//static ScriptableObject _test7;
public static List<ScriptableObject> ScriptableObjectList = new List<ScriptableObject>();
void Awake()
{
if (_instance == null)
_instance = this;
else
{
Destroy(_instance);
}
}
public void SetPublicObjects()
{
TopScrollInfoText = _topScrollInfoText;
// Test7 = _test7;
}
[MenuItem("Scene7/Set Scene 7 Objects")]
public static void SetObjects()
{
_topScrollInfoText = CreateScriptableObject<TopScrollInfoText>("TopScrollInfoText") as TopScrollInfoText;
// _test7 = CreateScriptableObject<Test7>("Test7");
}
public static ScriptableObject CreateScriptableObject<T>(string NameOfClass)
{
CheckClass<T> currentObject = new CheckClass<T>();
ScriptableObject scripObj = currentObject.CreateScriptableObject(NameOfClass);
return scripObj;
}
[ContextMenu("Update")]
void UpdateList()
{
/*
foreach (var item in ScriptableObjectList)
{
Debug.Log("Static list count = " + ScriptableObjectList.Count.ToString());
ScriptableObject thisObject = ScriptableObjectList.Find(x => x.name == item.name);
if (!thisObject)
{
Debug.Log("Adding to new list");
ScriptableObjectList.Add(item);
} else
{
Debug.Log("Found Duplicate Object");
}
}
*/
SetPublicObjects();
}
}