Tag: C#的

在C中签名为无符号转换 – 它总是安全吗?

假设我有下面的C代码。 unsigned int u = 1234; int i = -5678; unsigned int result = u + i; 这里隐含的转换是什么,这个代码对于u和i所有值是安全的吗? (安全的,即使这个例子的结果会溢出到一些巨大的正数,我可以把它回到一个整数,并得到真正的结果。)

点(。)运算符和 – >在C ++中有什么区别?

点(。)运算符和 – >在C ++中有什么区别?

为什么使用alloca()不被认为是好的做法?

alloca()从堆栈分配内存,而不是malloc()堆。 所以,当我从例程返回时,内存被释放。 所以,这实际上解决了我释放dynamic分配内存的问题。 释放通过malloc()分配的内存是一个非常头疼的问题,如果不知何故,会导致各种内存问题。 为什么使用alloca() ,尽pipe有上述的特性,

有没有比这更好的替代“打开types”?

看作是C#不能切换一个types(我收集的没有作为特殊情况添加,因为是一个关系意味着不止一个不同的情况可能适用),是否有更好的方式来模拟types切换比这个? void Foo(object o) { if (o is A) { ((A)o).Hop(); } else if (o is B) { ((B)o).Skip(); } else { throw new ArgumentException("Unexpected type: " + o.GetType()); } }

TransactionScope在一些机器上自动升级到MSDTC?

在我们的项目中,我们使用TransactionScope来确保我们的数据访问层在事务中执行它的操作。 我们的目标是不要求我们的terminal用户的机器上启用MSDTC服务。 麻烦的是,在我们的一半开发人员机器上,我们可以禁用MSDTC来运行。 另一半必须启用它或他们得到“MSDTC on [服务器]不可用”错误消息。 这真让我挠头,让我认真考虑回滚到基于ADO.NET事务对象的基于TransactionScope的解决scheme。 这看起来很疯狂 – 对我们开发人员的一半工作(而不是升级)相同的代码在其他开发人员的升级。 我希望有一个更好的答案跟踪为什么交易升级到DTC,但不幸的是它不。 下面是一些会导致麻烦的代码示例,在尝试升级的机器上,尝试在第二个连接上升级。打开()(是的,当时没有其他连接打开)。 using (TransactionScope transactionScope = new TransactionScope() { using (SqlConnection connection = new SqlConnection(_ConStr)) { using (SqlCommand command = connection.CreateCommand()) { // prep the command connection.Open(); using (SqlDataReader reader = command.ExecuteReader()) { // use the reader connection.Close(); } } } // Do other stuff […]

在C#中,两个问号在一起意味着什么?

穿过这行代码: FormsAuth = formsAuth ?? new FormsAuthenticationWrapper(); 这两个问号是什么意思,它是一种三元运算符? 在Google中查找是很困难的。

公共,私人,受保护和没有什么区别?

我所有的大学生涯中,我一直在使用public ,想知道public , private和protected之间的区别吗? 还有什么static做,而不是什么都没有?

int和char在getchar / fgetc和putchar / fputc之间的区别?

我想自己学习C,而且我对getchar和putchar感到困惑: 1 #include <stdio.h> int main(void) { char c; printf("Enter characters : "); while((c = getchar()) != EOF){ putchar(c); } return 0; } 2 #include <stdio.h> int main(void) { int c; printf("Enter characters : "); while((c = getchar()) != EOF){ putchar(c); } return 0; } C库函数int putchar(int c)将参数char指定的字符(unsigned char)写入stdout。 C库函数int getchar(void) )从stdin获取一个字符(一个无符号字符)。 这相当于以stdin作为参数的getc。 这是否意味着putchar()接受int和char或者其中之一,而getchar()是否应该使用int或char ?

在C#中,为什么List <string>对象不能存储在List <object>variables中

看来List对象不能存储在C#中的Listvariables中,甚至不能以这种方式显式地转换。 List<string> sl = new List<string>(); List<object> ol; ol = sl; 结果不能将typesSystem.Collections.Generic.List<string>隐式转换为System.Collections.Generic.List<object> 接着… List<string> sl = new List<string>(); List<object> ol; ol = (List<object>)sl; 结果无法将typesSystem.Collections.Generic.List<string>转换为System.Collections.Generic.List<object> 当然,你可以把所有的东西都从string列表中拉出来放回去,但这是一个相当复杂的解决scheme。

为什么C字符文字整数而不是字符?

在C ++中, sizeof('a') == sizeof(char) == 1 。 这很直观,因为'a'是一个字符字面值,而sizeof(char) == 1是由标准定义的。 在C中, sizeof('a') == sizeof(int) 。 也就是说,看起来C字符文字实际上是整数。 有谁知道为什么? 我可以find很多提到这个C怪癖,但没有解释为什么它存在。