小编use*_*116的帖子

无法将IEnumerable <Triangle>传递给正在寻找IEnumerable <IShape>的函数

我有一组对象:

 IEnumerable<Triangle>
Run Code Online (Sandbox Code Playgroud)

这些对象支持一个接口IShape但是我在尝试将其传递给要求的函数时遇到错误:

 IEnumerable<IShape>
Run Code Online (Sandbox Code Playgroud)
  1. 为什么我不能通过这个?
  2. 是否有任何解决方法将一个转换为另一个以使其工作?

c# ienumerable interface .net-3.5

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

使用 SMTP 发送电子邮件并控制发件人地址

我正在尝试使用 c# App 发送电子邮件,下一个代码正在运行。

SmtpClient MailClient = new SmtpClient("smtp.gmail.com");
MailClient.EnableSsl = false;
MailClient.Credentials = new NetworkCredential("Ryan.White", "Password");
MailMessage Msg = new MailMessage();
Msg.From = new MailAddress("Sender.name@gmail.com");
Msg.To.Add(new MailAddress("Ryan.White@gmail.com"));
Msg.Subject = "testSub";
Msg.Body = "testBody";

MailClient.Send(Msg);
Run Code Online (Sandbox Code Playgroud)

但是 Gmail 的 SMTP 服务器将 gmail 电子邮件地址(Ryan.White@gmail.com)作为发件人,

无论 MSG.FROM 地址 (Sender.name@gmail.com)。

是否可以使用 C#/.NET 发送电子邮件并控制发件人地址?

或者在没有身份验证的情况下发送电子邮件?

我知道在 UNIX 中,您可以在“邮件”命令中控制发件人地址。

.net c# smtp

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

奇怪的编码问题,添加了00

出于某种原因,如下图所示,我的系统总是00在ASCII文本文件中的每个字符之后添加.我只能在使用文本文件的二进制格式视图时找到此问题(例如在UltraEdit中).如果我只是用记事本打开它,一切都很好.但这是一个很大的问题,因为如果我将此文件发送到另一个系统进行处理,他们会抱怨它不是一个有效的文件,因为以下所有00:

在此输入图像描述

是因为某些系统设置?

c# biztalk character-encoding

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

意外的输出打印一个浮动转换为int

#include <stdio.h>
int main()
{
    float a = 12.5;

    printf("%d\n", a);
    printf("%d\n", *(int *)&a);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

另外,你如何解释表达式*(int *)&a

c pointers

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

为无法找到的实体发出命令时,适当的.NET异常类型是什么?

我的许多应用程序服务层方法都是这样的:

    public class Command
    {
        public int Id { get; private set; }
    }

    public class Repository
    {
        public Entity Load(int id)
        {
            // the usual stuff here
        }
    }

    public class AppService
    {
        public void Execute(Command command)
        {
            var entity = new Repository().Load(command.Id);
            if (entity == null)
            {
                // what type of exception do I throw here?
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

如果客户端为无法找到的实体发出命令,我应该抛出什么类型的异常? MSDN上的InvalidOperationException规范指的是"对象状态"无效.看起来这里并不适用 - 这真的只是一个糟糕的命令.

有什么建议?

.net domain-driven-design

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

替换失败不是static_cast的错误(SFINAE)问题

鉴于:

class Hokey
{
public:
    explicit C(int i): i_(i) { }

    template<typename T>
    T& render(T& t) { t = static_cast<T>(i_); return t; }
private:
    unsigned i_;
};
Run Code Online (Sandbox Code Playgroud)

如果我尝试:

Hokey h(1);
string s;
h.render(s);
Run Code Online (Sandbox Code Playgroud)

键盘给我一个静态强制转换的错误:

t.cpp: In member function 'T& Hokey::render(T&) [with T = std::string]':
t.cpp:21:   instantiated from here
Line 11: error: no matching function for call to 'std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(unsigned int&)'
Run Code Online (Sandbox Code Playgroud)

似乎应该说没有Hokey::render可比的.

当然,如果我提供有效的过载,一切正常.但是根据下面的代码,你再次取消注释行,键盘扼流圈:

string& render(string& s) const {
    ostringstream out; …
Run Code Online (Sandbox Code Playgroud)

c++ sfinae

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

警告:隐式声明函数

我在C编程,我的gcc编译器在我的函数调用中给出了以下警告 mySedondFile.c:

implicit declaration of function 'func'
Run Code Online (Sandbox Code Playgroud)

函数原型声明myfile.h为:

void  func(char*);
Run Code Online (Sandbox Code Playgroud)

函数定义在 myfile.c

void  func(char*x);
Run Code Online (Sandbox Code Playgroud)

mySecondFile.c 包含:

#include "myfile.h"

func("Hello");
Run Code Online (Sandbox Code Playgroud)

我想知道为什么这会抱怨.

c

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

编译SymbolicC++ - 运算符,是不明确的

我正在尝试在VC++ 2010 Express中编译SymbolicC++库(在发行版中有特殊的VS项目),但它在系统头中提供了很多错误,与之相关operator,.例如:

1> C:\ Program Files\Microsoft Visual Studio 10.0\VC\include\xlocmon(410):错误C2593:'运算符',含糊不清

对于系统头中的此代码:

if (_Str[0] < _E0 || _E0 + 9 < _Str[0])
    _Str2 += '-', ++_Off;
Run Code Online (Sandbox Code Playgroud)

为什么?怎么编译呢?

c++ visual-c++-2010

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

C++中的Singleton多线程代码

我对使用C++中的Singleton和多线程编程有疑问之后您可以看到Singleton类的示例代码,其中包含名为shared的变量.

我创建了1000个线程来修改(+1)我的Singleton全局实例的变量.共享的最终值是1000但我希望这个值低于1000,因为我没有保护这个变量的并发性.

代码是否真的是线程安全的,因为类是Singleton或它恰好是幸运的,值是1000但它可以完全小于1000?

#include <iostream>
using namespace std;

class Singleton {
private:
    Singleton() {shared = 0;};
    static Singleton * _instance;
    int shared;

public:
    static Singleton* Instance();
    void increaseShared () { shared++; };
    int getSharedValue () { return shared; };
};

// Global static pointer used to ensure a single instance of the class.
Singleton* Singleton::_instance = NULL;

Singleton * Singleton::Instance() {
    if (!_instance) { 
        _instance = new Singleton;
    }

    return _instance;
}

void * myThreadCode (void * param) {
    Singleton …
Run Code Online (Sandbox Code Playgroud)

c++ concurrency singleton multithreading

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

如何使用XML序列化来抑制名称空间的输出?

我使用XmlSerializer序列化了一个对象,并在输出中接收了不需要的命名空间属性.如何防止它在XML中打印这些命名空间?

// write and close the bar
XmlSerializer serializer = new XmlSerializer(typeof( DecisionBar));

serializer.Serialize(writer, decision);

public class DecisionBar
{
    public DateTime bartime { get; set; }
    public string frequency { get; set; }
    public bool HH7 { get; set; }
    public bool crossover { get; set; }
    public double mfe { get; set; }
    public double mae { get; set; }
    public double entryPointLong { get; set; }
    public double entryPointShort { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

输出:

<DecisionBar xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <bartime>2012-07-23T07:22:00</bartime> …
Run Code Online (Sandbox Code Playgroud)

c# xml-serialization

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