【c#-在语句if处声明变量】教程文章相关的互联网学习教程文章

c# – 何时初始化“常量”类变量【代码】

我有一个常量int变量定义为类变量: 我的课程定义如下:public class ABC : XYZ {private const int constantNumber = 600;public ABC(): base(constantNumber){}}它在调用基础构造函数时(即在调用它自己的构造函数之前)是否可用? 什么时候定义?解决方法:即使没有初始化课程,它也可用!基本上,在使用常量的任何地方,编译器都会内联该值. 例如:public class Constants {public const int Foo = 10;static Constants(){Console.Wr...

c# – LINQ的意外输出当按Contains(变量)过滤时【代码】

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace ConsoleApplication1 {class Program{static void Main(string[] args){string s = "g";string[] color = { "greena", "browna", "bluea" };var query = color.Where(c => c.Contains(s));Console.WriteLine(query.Count());s = "a";query = query.Where(c => c.Contains(s));Console.WriteLine(q...

c# – 使用foreach(…)语法,同时在循环内增加索引变量【代码】

在查看C#代码时,我经常会看到这样的模式:DataType[] items = GetSomeItems(); OtherDataType[] itemProps = new OtherDataType[items.Length];int i = 0; foreach (DataType item in items) {// Do some stuff with item, then finallyitemProps[i] = item.Prop;i++; }for循环遍历项目中的对象,但也保持计数器(i)以迭代itemProps.我个人不喜欢这种额外的闲逛,而是可能做的事情如下:DataType[] items = GetSomeItems(); OtherData...

c# – 交换两个数字而不使用另一个变量【代码】

参见英文答案 > Swap two variables without using a temporary variable 28个在不使用临时变量的情况下交换两个变量如果int a=4; int b=3;我需要交换这些变量并获得输出 a = 3,b = 4不在C#中使用另一个变量解决方法:使用以下概念int a=4 ; int b=3 ;a=a+b ; // a=7 b=a-b ; // b=7-3=4 a=a-b ; // c=7-4=3

c# – 将类实例化为变量【代码】

在编写功能相同的代码的这两种方式之间,性能方面是否存在差异? 选项1:SomeObjecModel TheObjectModel = new SomeObjectModel(); return TheObjectModel.SomeMethod();选项2:return new SomeObjectModel().SomeMethod();在选项1中,对象被实例化为变量,而在选项2中,没有变量.我只是好奇是否有任何区别. 谢谢.解决方法:生成的IL代码有所不同:Option1: IL_0000: newobj UserQuery+SomeObjectModel..ctor IL_0005: stloc.0 ...

c# – ASP.net,将对象添加到会话变量中【代码】

我试图在回发中添加一个对象到一个会话变量.我的代码看起来类似于以下内容.Supply sup = Supplies.GetSupply(supplyItemID);Session["CartObjects"] += sup;现在,编译器抛出一个错误,指出“=”运算符不能用于类型’object’和’Supply’.我是否需要在我的Supply对象上实现允许添加它的接口?这是可能的还是我以完全错误的方式思考这个问题.解决方法:试试这个:Supply sup = Supplies.GetSupply(supplyItemID); var cartObjects ...

c# – 双变量给出意想不到的结果【代码】

我不确定这两个变量是怎么回事. “milliV”是双倍的,“param1a”是双倍的,param1a = 65,我应该得到1.588.我得到的结果是= 0.这怎么可能?double milliV=0.0;milliV= (5/1023*param1a/200*1000);解决方法:因为5/1023是整数除法所以结果也是整数.试试这个milliV= (5.0/1023*param1a/200.0*1000);只要操作的一个元素是double,结果也会加倍

c# – 无论如何使变量“部分受保护”?【代码】

我有以下类层次结构public class Third : Second { }public class Second : First { }public class First {private int MyVariable; }如果我想从Second和Third访问MyVariable,我可以使MyVariable受到保护,但如果我想从Second而不是Third访问该怎么办.那可能吗?解决方法:你不是以面向对象的方式思考这个问题. 你说每三分之一都是秒.但是您希望每秒都能访问变量,但您不希望任何Third有权访问. 但如果Third没有访问权限,那么它就不是...

c# – 为什么布尔变量总是重置为false;【代码】

我在类的顶部声明了一个布尔变量,当在页面上选择单选按钮时,变量设置为true,但是当重新加载页面时,变量将重置为false.我处理此问题的一种方法是使用static关键字,但我不确定这是否是处理此问题的最佳方法.这是我尝试在Page_Load事件中执行操作的类,但它仍然将变量重置为false.public class SendEmail {bool AllSelected;protected void Page_Load(object sender, EventArgs e) {if(!Page.IsPostBack){AllSelected = false;} }prote...

C#说我在不打算时声明变量【代码】

给出以下代码:string a = "example"; string b = "blah {0}", a;我被引导相信使用{0}或{1},它会放在逗号之后的任何内容,在本例中为字符串a,所以“示例”.字符串b应该是“等等”.当我这样做时,我得到错误“字符串a已经声明”. 为什么它认为我在这种情况下声明一个字符串?解决方法:这一行:string b = "blah {0}", a;声明字符串b的初始值,然后声明字符串a. 当您指定由逗号分隔的多个变量名时,它会将它们全部声明,例如:string a, b...

C#.net无法为内联if语句中的变量赋值null【代码】

我只是想知道为什么以下代码不起作用(请记住,我将年龄设置为可以为空):myEmployee.age = conditionMet ? someNumber : null;但以下工作正常:if(conditionMet) {myEmployee.age = someNumber; } else {myEmployee.age = null; }为什么我不能在条件运算符中将值设置为null?我的代码中的所有if语句都不好. 谢谢.解决方法:双方的类型必须相同(或可隐式兑换):myEmployee.age = conditionMet ? someNumber : (int?)null;从docs:Eith...

c# – 何时使用属性以及何时在内部类上使用内部变量的策略?【代码】

在几乎所有的类中,我都有属性和内部类变量的混合.我总是选择一个或另一个规则“属性,如果你需要外部,如果不需要类变量”.但是还有许多其他问题让我经常重新思考这个问题,例如: >在某些时候我想使用来自类外部的内部变量,所以我必须将它重构为一个属性,这让我想知道为什么我不只是创建所有内部变量属性,以防万一我必须从外部访问它们,因为大多数类都是内部类,所以它不会暴露在API上,因此如果可以从类外部访问内部变量并不重要>但是...

c# – 使用反射和锁定正确地实例化分配给私有静态volatile变量的类【代码】

所以这是一个我想要改进或确认的人为例子. 我正在使用(我/我)BATIS.NET(一个轻量级的ORM /数据映射器框架),我所拥有的是一个类,它为数据库的每个表映射器提供静态引用.它工作得很好,但有很多重复,我认为可能有机会大大简化代码.该类目前看起来像这样:public sealed class MyRepository {private static string _connectionString;private volatile static TableAbcMapper _tableAbcMapper;private volatile static TableXyzMapper...

c# – MSpec:如何使静态变量线程安全?

我正在使用MSpec作为我的最新项目,总的来说我对它非常满意.但是,当我的测试以并行方式运行时,我确实遇到并发问题,我想知道是否有人遇到过这个问题,或者更好的是,有一个解决方案? MSpec严重依赖静态方法和变量来工作. 现在,当我在我的基类中定义静态变量时,它会被多个测试类使用,并且我在paralel中运行我的测试,它们共享相同的静态变量,从而干扰彼此. 我正在使用NCrunch和Resharper作为我的测试人员,我遇到了这两个问题. 有人熟悉这...

C#学习4——变量、常量与数据转换【代码】【图】

C#学习4——变量、常量与数据转换常量变量命名规范数据类型转换装箱与拆箱隐式转换显示转换DateTime 常量 常量是指在程序运行过程中不可改变的。通过关键字const来声明变量。 例如 const double PI=3.14159265;定义常量时,表达式中的运算符对象只允许出现常量,不能有变量存在。 int a=20; const int b=30; const int c=b+45;//correct const int d=a+45;//wrong c=15;//wrong,cant change the value of constant变量 声明变量的作...