【c# – 为什么有赋值运算符(&=,=)但没有非赋值运算符(&,)用于短基元?】教程文章相关的互联网学习教程文章

将java方法转换为C#:使用位移运算符将字节转换为整数【代码】

我试图将以下两种方法转换为c#而没有.net编译器向我抱怨.坦率地说,我只是不明白这两种方法是如何真正在幕后工作的.所以答案和解释在这里会很棒.public static int bytesToInt(byte b0, byte b1, byte b2, byte b3) {return (((int)b0 << 24) & 0xFF000000)| (((int)b1 << 16) & 0x00FF0000)| (((int)b2 << 8) & 0x0000FF00)| ((int)b3 & 0x000000FF); }public static byte[] charToBytes(char c) {byte[] result = new byte[2];res...

如何使用C#decimal计运算符数组总和的百分比,使其总和严格为100

假设我有一个整数数组.让我们在逻辑上将它分成两部分以简化. 假设数组的所有元素的总和是2860800. 假设左半部分的所有元素的总和是2834387. 假设右半部分的所有元素的总和是26413. 现在计算左半部分的百分比100m * leftHalfSum / totalSum得出99.07672678970917225950782998. 同样,右半部分的百分比乘以100m * rightHalfSum / totalSum是0.9232732102908277404921700224. 现在,如果我在Visual Studio的Watch中添加这两个百分比,它会...

c# – 如何在Ternary运算符中编写多个语句?【代码】

我发布这个问题是因为我发现这类帖子没什么相似之处.我正在学习三元运算符.我想执行如下所示的操作:bool Divisible = false;foreach (var Number in NumberList)){var Number = 242;if ((Number %= 2) | (Number %= 6)){Divisible = true;}else{Divisible = false;}}我们可以使用这样的三元运算符来编写它:var Divisible = (Number %= 2 | Number %= 6) ? false : true ;但是如果在else块中有多个语句那么该怎么办?bool Divisi...

c# – 一行中两个相等(赋值)运算符【代码】

我测试了以下程序:public class test {public string phone; }public class verify {private string _phoneNo;public string phoneNo {get { return _phoneNo; } set { _phoneNo = !String.IsNullOrEmpty(value) ? "*" : ""; } } }class Program {static void Main(string[] args){verify verify1 = new verify();test test1 = new test { phone = verify1.phoneNo = "This is a phone number" };Console.WriteLine("test.ph...

c# – 显式null检查与null-coalescing运算符的编译器评估?【代码】

请考虑以下代码,该代码使用两种略有不同的方法来检查_instance并在尚未设置时分配它.class InstantiationTest {private Object _instance;public void Method1() {if(_instance == null) {_instance = new Object();}}public void Method2() {_instance = _instance ?? new Object();} }VS或Resharper不断为我的显式空检查加下划线,并提示我使用null-coalescing运算符进行重构. 我想知道编译器是否足够智能来检测Method2()中的情况...

c# – 参数化字符串以及LIKE和通配符运算符【代码】

我在搜索中看到SQL查询中参数化字符串的使用形式如下:SqlCommand comm = new SqlCommand(); comm.CommandText="SELECT * FROM table WHERE field LIKE '%'+@var+'%'"; comm.Parameters.AddWithValue("var","variabletext"); SqlDataReader reader = comm.ExecuteReader();然而,在这个论坛中提到它尽管在参数化字符串中使用,但仍受sql注入.我只能假设连接的字符串绕过所有参数化的安全性,只是将值直接作为字符串插入.如果是这种情况...

c# – 显式运算符重载继承【代码】

我一直在考虑解决问题的方法,我不确定它是否会起作用. 假设我们有一个名为A的基类和3个子类B,C和D.A^ ----------------- | | | B C D我们还有三个等级X,Y和Z. 在我的系统对象类型B,C,D作为类型A传递,通常我必须将类型B,C,D的对象转换为对象X,Y或Z(这不是演员,我手动转换他们,因为他们完全不同). 因此,要将对象类型A转换为类型X,Y或Z,我需要首先检查子类型,然后根据子类型使用关于A对象的一些操作的结果初始...

c# – “是”运算符编译时警告【代码】

从reference:The is keyword causes a compile-time warning if the expression isknown to always be true.我试图创建一个例子:class MyClass {public void method(MyClass c){if (c is MyClass){//...}if (c is Object){//...}} }但我没有得到任何警告.为什么? 有人能告诉我一个例子,我得到一个警告(因为表达式总是如此)? 它适用于虚假.解决方法:如果值为null,则is运算符将返回false,因此如果调用method(null),则不会输入if-...

c# – 在LINQ中使用所有三元运算符?【代码】

考虑这个功能:public List<Employees> getEmployees(....... , int? takeMax = null) {// some code ...var items = DB_Context.Employees.Where(%%%%% WHATEVER %%%%).Take(takeMax.HasValue && takeMax.Value > 0 ? takeMax.Value : ?????? ).ToList(); }如果takeMax为NULL,我如何获取所有项目? Take()接受int,我不想写类似的东西int total = DB_Context.Employees.Count(); var items = DB_Context.Employees.Where(%%%%% WH...

c# – “这个”运算符不工作【代码】

每次我用这个.我的这个.是浅蓝色,有绿色下划线.在F5之后我无法获得101的价值.相反,我得到价值0.任何帮助?class Student {private int _ID;public void SetID(int Id){if (Id <= 0){throw new Exception("It is not a Valid ID");this._ID = Id;}}public int GetID(){return this._ID;} }class Program {public static void Main(){Student C1 = new Student();C1.SetID(101);Console.WriteLine("Student ID = {0}", C1.GetID());}...

c# – Vbnet中是否有空条件运算符?【代码】

c在C#中有一个空条件运算符? (有时称为猫王运算符)如下:var name = project?.customer?.name;如果project或customer为null,则不会失败但返回null. VB.NET中有相同的东西吗? 请注意,我不是在寻找If(b, x, y),而是在寻找?..解决方法:VB也有空条件运算符(从未听过术语’Elvis’运算符):Dim name = customer?.name笔记: >在VB中推断输入需要’Option Infer On’>我很确定您的原始C#代码示例应该是:var name = customer?.name;

C# 主要运算符中的成员访问

在开发过程中,我遇到了一种null 条件成员访问的写法,开始不太理解,之后专门查了微软的官方文档,下面是具体内容:  三种成员访问的三种形式 (1)x.y:成员访问。 (2)x?.y:null 条件成员访问。 如果左操作数计算结果为 null,则返回 null。 (3)x?[y]:null 条件数组元素或类型索引器访问。 如果左操作数计算结果为 null,则返回 null。   其中,我主要介绍一下第二和第三种,x?.y以及x?[y...

c# – Nullable运算符.?【代码】

我记得我在某个地方看过这个,但现在无法在谷歌搜索结果中找到它. 最新的C#(VS2013)是否支持任何此类操作符?SomeObject.?SomeMember = SomeValue;仅当SomeObject不为null时,才应将SomeValue分配给SomeObject.SomeMember. N.B:我知道我们可以通过HasValue和其他方式来做到这一点.我只是询问新的操作符.解决方法:好吧它与Nullable类型无关.它是null propagation operator并且适用于每个可以为null的类型,不仅适用于Nullable< T>,也适...

C#6空条件运算符 – 作为代码转换器?【代码】

在执行成员访问之前,我已经知道null条件运算符can be used to test for null. 例如 :int? length = customers?.Length; // null if customers is null Customer first = customers?[0];如果客户在客户中为空?.Length,那么客户?.Length将返回null并且null将在int中? length = …变量 我也知道在多线程环境中对方法调用的单个原子操作可以是used:public void OnFoo() {Foo?.Invoke(this, EventArgs.Empty); }但 AFAIU – 如果F...

c# – `typeof`运算符如何在泛型方法中获取类型参数?【代码】

在Java中,此代码不起作用:public <T> void foo() { print(T.class); } // compile time error因为通用类型T在运行时被删除.要使用T,我必须将它用作参数,这会将String.class推入堆栈public <T> void foo(Class<T> T) { print(T); } public void bar() { foo(String.class); }但在C#中,我可以在运行时获取类型参数:public void Foo<T>() { print(typeof(T)); }它是如何工作的?编译器(或vm)是否自动将void Foo< T>()转换为void Foo...