647 次浏览
位运算符作用于位,并执行逐位运算。在位右移运算符中,左操作数的值向右移动由右操作数指定的位数。在下面的代码中,我们有值 -60,即 0011 1100。在右移 -c = a >> 2; 后,它转换为 15,右移两次后为 -15,即 0000 1111。示例您可以尝试运行以下代码以在 C# 中实现位右移运算符:using System; using System.Collections.Generic; using System.Text; namespace Demo { class toBinary { static void Main(string[] args) ... 阅读更多
190 次浏览
为了将二进制转换为十进制,我在这里使用了 while 循环并找到了二进制数(即输入)的余数。之后,余数乘以基值并相加。这就是我获得十进制值的方法:while (val > 0) { remainder = val % 10; myDecimal = myDecimal + remainder * baseVal; val = val / 10; baseVal = baseVal * 2; }示例让我们看看在 C# 中将二进制转换为十进制的完整代码:实时演示using System; using System.Collections.Generic; using System.Text; namespace Demo { class ... 阅读更多
10K+ 次浏览
二分查找作用于已排序的数组。将该值与数组的中间元素进行比较。如果未找到相等的值,则消除该值不存在的半个部分。同样,搜索另一半部分。这是我们数组中的中间元素。假设我们需要查找 62,则左半部分将被消除,然后搜索右半部分:以下是二分查找的复杂度:最坏情况性能 O(log n) 最佳情况性能 O(1) 平均性能 O(log n) 最坏情况空间复杂度 O(1) 示例让我们看看实现二分查找的方法:public ... 阅读更多
434 次浏览
使用 BigInteger 处理 C# 中的大数。要添加的 BigInteger 程序集是 System.Numerics。在 c# 中,BigInteger 位于 System.Numerics.BigInteger 中。语法BigInteger 的语法: [SerializableAttribute] public struct BigInteger : IFormattable, IComparable, IComparable, IEquatable让我们来看一个示例代码片段:BigInteger num = BigInteger.Multiply(Int64.MaxValue, Int64.MaxValue);您可以像这样创建 BigInteger:BigInteger num = new BigInteger(double.MaxValue);以下是其一些构造函数:序号构造函数和说明1BigInteger(Byte[ ])使用字节数组中的值创建 BigInteger 结构的新实例。2BigInteger(Decimal)使用 Decimal 值创建 BigInteger 结构的新实例。 3BigInteger(Double)使用 Double 值创建 BigInteger 结构的新实例。 ... 阅读更多
870 次浏览
要在 C# 中创建计算器程序,需要使用 Web 窗体。在其中创建 1-9 的按钮、加法、减法、乘法等。让我们看看加法、减法和乘法的代码。首先,我们声明了两个变量:static float x, y;现在,我们将了解如何在单个按钮单击时设置计算代码:我们的结果文本框是 tbResult,因为我们也使用了 Windows 窗体来显示计算器:protected void add_Click(object sender, EventArgs e) { x = Convert.ToInt32(tbResult.Text); tbResult.Text = ""; y = '+'; tbResult.Text += y; } protected void sub_Click(object sender, ... 阅读更多
1K+ 次浏览
顾名思义,BackgroundWorker 类允许您设置一个在后台持续运行并根据需要与主线程通信的线程。BackgroundWorker 使在 Windows 窗体中实现线程成为可能。需要在另一个线程上执行密集型任务,以便 UI 不会冻结。在任务完成后,需要发布消息并更新用户界面。以下属性用于 BackgroundWorker 类:参考:Microsoft Developer Network (MSDN)序号名称和说明1CancellationPending指示应用程序是否已请求取消后台操作的值。2CanRaiseEvents获取一个值,该值指示组件是否可以引发... 阅读更多
636 次浏览
线程定义为程序的执行路径。每个线程定义一个唯一的控制流。后台线程当前台线程关闭时,后台线程将被终止。用于后台线程的属性是 IsBackground,它获取或设置一个值,该值指示线程是否是后台线程。此属性的默认值为 false,因为创建的默认线程是前台线程。要创建后台线程:Thread bgThread = new Thread(tStart); bgThread.IsBackground = true; bgThread.Start();前台线程前台线程将继续运行,直到最后一个前台线程终止。当所有前台线程停止时,... 阅读更多
2K+ 次浏览
装箱装箱是将值类型隐式转换为引用类型。拆箱拆箱是将通过装箱创建的引用类型显式转换回值类型。示例让我们来看一个示例代码片段:// int int myVal = 12; // 装箱 object myBoxed = myVal; // 拆箱 int myUnBoxed = (int) myBoxed;让我们来看另一个示例,该示例显示了 C# 中的数组列表:int a = 5; ArrayList arr = new ArrayList(); // 装箱 arr.Add(a); // 拆箱 int b = (int)arr[0];
915 次浏览
async 和 await 关键字用于 C# 的异步编程。带有 GUI 的应用程序,检查队列的内容,如果存在未处理的任务,则将其取出并首先处理它。代码同步执行,未处理的任务首先完成。如果处理时间超过预期,则应用程序将显示停止响应消息。让我们看看上面讨论的内容:private void OnRequestDownload(object sender, RoutedEventArgs e) { var req = HttpWebRequest.Create(_requestedUri); var res = req.GetResponse(); }要解决上述问题,请使用 async 和 await 关键字:private async ... 阅读更多
5K+ 次浏览
C# 中的关联关联定义了 C# 中对象之间的关系。可以在对象之间定义一对一、一对多、多对一和多对多的关系。例如,一个员工可以与多个项目关联,而一个项目可以有多个员工。C# 中的组合在组合下,如果父对象被删除,则子对象也失去其状态。组合是聚合的一种特殊类型,并提供一部分关系。例如,一辆汽车有一个发动机。如果汽车被破坏,发动机也会被破坏。C# 中的聚合聚合是 C# 中对象之间的直接关系。它... 阅读更多