小编sha*_*oth的帖子

"this"指针如何指向不同的对象?

假设我有一个班级:

class test {
public:
   void print();
private:
   int x;
};

void test::print()  
{  
    cout<< this->x;  
}
Run Code Online (Sandbox Code Playgroud)

我有这些变量定义:

test object1;
test object2;
Run Code Online (Sandbox Code Playgroud)

当我打电话object1.print() this时碰巧存储地址,object1所以我xobject1打印得到,当我打电话object2.print() this时,恰好是存储地址,object2xobject2打印到.怎么会发生?

c++ pointers this this-pointer

1
推荐指数
1
解决办法
835
查看次数

如果字符串集中有多个可识别的数字序列,自然分类应如何工作?

所谓的自然排序旨在解决以下问题:用户期望

file1.txt
file2.txt
file3.txt
file10.txt
file11.txt
Run Code Online (Sandbox Code Playgroud)

"通常"排序反而产生:

file1.txt
file10.txt
file11.txt
file2.txt
file3.txt
Run Code Online (Sandbox Code Playgroud)

这是不方便的,不是"自然的".

现在我们最近遇到了一个用户抱怨这个问题并且我们考虑采用自然排序的情况.然而,出现以下问题.考虑以下字符串集:

file1file100.txt
file2file99.txt
...
file99file2.txt
file100file1.txt
Run Code Online (Sandbox Code Playgroud)

其中存在多个可识别的数字序列,并且这些序列彼此相反.自然排序应如何处理这些集合(我的意思是结果应该是什么,而不是如何实现)?

language-agnostic sorting algorithm natural-sort

1
推荐指数
1
解决办法
232
查看次数

如何使我的Windows Azure应用程序能够抵御Azure数据中心的灾难性事件?

AFAIK亚马逊AWS提供所谓的"区域"和"可用区域",以降低部分或完全数据中心中断的风险.看起来如果我在两个"区域"中有我的应用程序的副本,并且一个"区域"关闭,我的应用程序仍然可以继续工作,好像什么也没发生.

Windows Azure有类似的东西吗?如何使用Windows Azure解决数据中心灾难性中断的风险?

cloud reliability azure

1
推荐指数
1
解决办法
954
查看次数

Azure角色包的大小是否有限制?

我很想将大量的二进制文件包含在Azure角色包中,这样它就可以变成几百兆字节.在我这样做之前,我不得不问 - Azure角色包的大小有限吗?

windows cloud deployment azure

1
推荐指数
1
解决办法
974
查看次数

如何在Azure角色代码中进行调试输出?

假设我编写了一个控制台C#应用程序 - 我可以Console.WriteLine()用来打印任何状态消息,并且可以在控制台中启动程序时读取它们.

现在我有一个Windows Azure角色,它在云中的某个地方运行,因此不再有控制台.如何使用调试输出轻松调试输出以发现角色当前状态和调试问题?

.net c# debugging azure azure-diagnostics

1
推荐指数
1
解决办法
2835
查看次数

将我的角色服务包存储在Azure blob存储中有多安全?

Azure管理门户允许从先前上载到Azure blob存储的服务包部署服务.这看起来非常方便但有点偏执 - 如果某些第三方访问blob存储并检索包含我的角色的可执行文件会怎么样?

在Azure blob存储中存储角色服务包的安全性如何?有什么更好的选择?

windows cloud deployment azure azure-storage-blobs

1
推荐指数
1
解决办法
192
查看次数

带有泛型参数的普通C#类无法编译,没有明显的原因

我想一个通用的功能,将与有类型的工作Top,Bottom,RightRect只读属性-我有一个第三方库有很多这样的类.

我写了这个:

internal class MyTemplate<WhatType> {
    internal static void Work( WhatType what )
    {
        int left = what.Left;
    }
};
Run Code Online (Sandbox Code Playgroud)

我希望它能够正常工作--C++中的等效代码可以正常工作.但是C#对象:

错误CS1061:'WhatType'不包含'Left'的定义,并且没有扩展方法'Left'接受类型'WhatType'的第一个参数可以找到(你是否缺少using指令或程序集引用?)

我不明白 - 为什么它会在我调用它之前尝试实例化模板?当然,类型WhatType尚不清楚,因此无法找到属性.

我做错了什么,我该如何解决?

.net c# generics templates

1
推荐指数
1
解决办法
317
查看次数

为什么反射会为lambda返回一个奇怪的名字?

我有这个代码:

class Program
{
    static void Main(string[] args)
    {
        Action whatToDo = () => {
            var member = (MemberInfo)(MethodBase.GetCurrentMethod());
            Thread.Sleep(0); //whatever, need something to put a breakpoint on
        };
        whatToDo();
    }
}
Run Code Online (Sandbox Code Playgroud)

当我运行它并使用watch来查看绑定到member引用的对象时,我看到该MemberInfo.Name属性具有值<Main>b__0.

这看起来很奇怪.为什么反思不会使用whatToDo名字?如果我在一个成员函数中有更多具有相同签名的操作怎么办 - 如何判断哪一个被报告?

为什么反射会返回这样一个奇怪的名字?

.net c# reflection lambda

1
推荐指数
1
解决办法
532
查看次数

通信对象System.ServiceModel.Channels.ServiceChannel无法用于通信,因为它处于故障状态

我收到以下错误

“通讯对象System.ServiceModel.Channels.ServiceChannel无法用于通讯,因为它处于故障状态。”

using (SecurityClient securityClient = new SecurityClient())
{                        
    SecurityService.GetIncomingPermissionsByIdRequest securityRequest =
        new GetIncomingPermissionsByIdRequest(Convert.ToInt32(recordId));
    SecurityService.GetIncomingPermissionsByIdResponse securityResponse =
        securityClient.GetIncomingPermissionsById(securityRequest);
    incomingPermissions = securityResponse.GetIncomingPermissionsByIdResult;
    SetPermissionFields();
    SetPermissionList();                  
    securityClient.Close();
}
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,我能够发送请求,但是当涉及到响应行并尝试获取响应时,它会移至错误状态并遇到上述错误。在移至响应之前,我已经检查了SecurityClient的状态行,则它处于已创建状态。但是,当尝试获取响应时,它将进入故障状态。

请问有人可以帮我吗?我尝试了堆栈中提到的一些方法,但没有找到解决方案。

.net c# wcf c#-4.0

1
推荐指数
1
解决办法
2359
查看次数

将null值作为Nullable <int>返回时,"指定的强制转换无效"

在我的SQL数据库中,我有以下视图:

CREATE VIEW MyView AS
(SELECT ChangeType FROM MyTable) UNION ALL
(SELECT NULL AS ChangeType FROM MyTable)
Run Code Online (Sandbox Code Playgroud)

哪里ChangeType有类型TINYINT.然后在我的C#代码中,我有一个以下类:

[Table(Name = "MyView")]
public class MyView
{
    [Column]
    public Nullable<int> ChangeType;
}
Run Code Online (Sandbox Code Playgroud)

使用如下:

var table = dataContext.GetTable<MyView>();
var elements = table.ToArray();
Run Code Online (Sandbox Code Playgroud)

当这段代码运行时,我得到以下异常:

[InvalidCastException: Specified cast is not valid.]
System.Data.SqlClient.SqlBuffer.get_Int32() +6393860
Read_MyView(ObjectMaterializer`1 ) +3404
System.Data.Linq.SqlClient.ObjectReader`2.MoveNext() +42
System.Linq.Buffer`1..ctor(IEnumerable`1 source) +488
System.Linq.Enumerable.ToArray(IEnumerable`1 source) +104
MyCodeHere
Run Code Online (Sandbox Code Playgroud)

如果我更改第二部分UNION如下:

(SELECT CONVERT(INT,NULL) AS ChangeType FROM MyTable)
Run Code Online (Sandbox Code Playgroud)

相同的代码运行得很好.

为什么那个"演员阵容无效"呢?为什么不能TINYINT代替它int

.net c# sql-server linq-to-sql

1
推荐指数
1
解决办法
4493
查看次数