小编JHo*_*ern的帖子

如何在与Knowntype属性一起使用的类上使用Obsolete属性时忽略编译器警告

因此,我们尝试弃用一些现有的类,并开始使用ObsoleteAttribute将它们标记为过时,以便它们将停止使用.使用具有使用Obsolete属性标记的类型的KnownType属性并导致编译器警告的事实是预期的.但是,在我们的项目中,我们将警告视为错误,因此忽略警告不是一种选择.是否有编译器指令来抑制此警告?

以下用法会导致编译器警告:

///ProductTemplateDataSet is marked with the Obsolete attribute
[KnownType(typeof(ProductTemplateDataSet))]
public class EntityCollectionBase : System.Data.DataSet
{

}
Run Code Online (Sandbox Code Playgroud)

编辑:我理解使用编译器指令来忽略错误,但是这个编译器警告没有数字.

.net c# attributes compiler-warnings

53
推荐指数
3
解决办法
4万
查看次数

.NET Core 2.0日志记录是否已损坏?

升级到.NET Core 2.0(+ ASP.NET Core 2.0)后,我似乎无法获得输出的Trace级别日志信息.

事实上,如果我做一个dotnet new web项目并在Startup for Configure中添加以下代码,我没有得到任何跟踪或调试日志消息,但我得到两次信息和错误消息.注释掉.AddConsole()调用只会输出一次(信息和错误) - 建议默认情况下使用控制台提供程序自动配置它.请记住,这是一个"文件 - >新"项目经验,Program.cs除了我添加的内容之外,没有任何设置用于记录或配置.有谁见过的东西?或者我应该为它注册一个GitHub问题.

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
    loggerFactory.AddConsole(Microsoft.Extensions.Logging.LogLevel.Trace);

    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
    }

    app.Run(async (context) =>
    {
        var logger = loggerFactory.CreateLogger("Blah");
        logger.LogTrace("Hello world : Trace");
        logger.LogDebug("Hello world : Debug");
        logger.LogInformation("Hello world : Information");
        logger.LogError("Hello world : Error");

        await context.Response.WriteAsync("Hello World!");
    });
}
Run Code Online (Sandbox Code Playgroud)

.net c# .net-core asp.net-core

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

tellg()函数给出错误的文件大小?

我做了一个示例项目,将文件读入缓冲区.当我使用tellg()函数时,它给我一个比读取函数实际读取的值更大的值.我认为有一个错误.

这是我的代码:

编辑:

void read_file (const char* name, int *size , char*& buffer)
{
  ifstream file;

  file.open(name,ios::in|ios::binary);
  *size = 0;
  if (file.is_open())
  {
    // get length of file
    file.seekg(0,std::ios_base::end);
    int length = *size = file.tellg();
    file.seekg(0,std::ios_base::beg);

    // allocate buffer in size of file
    buffer = new char[length];

    // read
    file.read(buffer,length);
    cout << file.gcount() << endl;
   }
   file.close();
}
Run Code Online (Sandbox Code Playgroud)

主要:

void main()
{
  int size = 0;
  char* buffer = NULL;
  read_file("File.txt",&size,buffer);

  for (int i = 0; i < size; i++) …
Run Code Online (Sandbox Code Playgroud)

c++ file ifstream

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

向属性动态添加属性

在我的课上,我有像这样的私有变量和属性.

private string _itemCOde=string.Empty;
private string  _itemName=string.Empty;

public string ItemCode
{
    get { return _itemCode; }
    set { _itemCode = value == null ? value : value.Trim();}
}

public string ItemName
{
    get { return _itemName; }
    set { _itemName = value == null ? value : value.Trim();}
}
Run Code Online (Sandbox Code Playgroud)

根据这个属性,我在从sql表中选择数据后创建Item对象.

现在,如果数据库表被更改并添加一个名为cost的新列,那么我必须向该类添加另一个属性.在不向类添加新属性的情况下,可以根据表字段动态声明属性.

c#

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

Lambda函数中的max_element

我实现了此功能,但仍然出现以下错误,我无法弄清原因。

/usr/include/c++/4.8/bits/stl_algo.h:6325: error: no match for call to '(Farm::killHeaviestAnimalOnFarm()::__lambda0) (Animal*&, Animal*&)' if (__comp(*__result, *__first)) ^
Run Code Online (Sandbox Code Playgroud)

我在互联网上搜索了一些示例,但看不到我和我之间有什么区别。

我的.cpp文件具有以下killHeaviestAnimalOnFarm

Animal *Farm::killHeaviestAnimalOnFarm()
{
    auto minmax_widths = std::max_element(animals.begin(), animals.end(),
            [] (Animal const& lhs, Animal const& rhs) {
                return lhs.getWeight() < rhs.getWeight();
            });
}
Run Code Online (Sandbox Code Playgroud)

c++ lambda max

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

Armadillo初始化列表无效

我在Windows 10下使用MSVC2013 64位编译器.

根据:

std::cout << arma::arma_version::as_string() << std::endl;
Run Code Online (Sandbox Code Playgroud)

我有Armadillio库的6.100.1版(Midnight Blue).

例如,我启用了C++ 11

auto il = { 10, 20, 30 };
for(auto ele : il)
    cout<<ele<<endl;
Run Code Online (Sandbox Code Playgroud)

工作中.还正确添加了库,运行以下代码:

vec v;
v<<10<<20<<30;
cout<<v;
Run Code Online (Sandbox Code Playgroud)

但是尝试使用Armadillio的初始化列表失败了.

vec v = { 1.0, 2.0, 3.0 };
Run Code Online (Sandbox Code Playgroud)

导致编译错误:

错误:C2440:'初始化':无法从'initializer-list'转换为'arma :: Col'没有构造函数可以采用源类型,或者构造函数重载解析是模糊的

c++ initializer-list armadillo c++11

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

获取Magento类别URL和名称

我想在我的多线程中手动添加一些带有名称的类别链接.我试过这个(以ID20为例)

<?php $category = Mage::getModel('catalog/category')->load(20); ?>
<a href="<?php echo $category->getUrl(); ?>"><?php echo $category->getName();?></a>
Run Code Online (Sandbox Code Playgroud)

这是有效的,但我不确定这是不是一个好主意,有很多加载只是为了获取URL.

我也试过用翻译代替:

<a href="<?php echo $this->__('URL-Language1') ?>"><?php echo $this->__('CatName-Language1') ?></a>
Run Code Online (Sandbox Code Playgroud)

在Locale csv中进行翻译.

这也有效,但实现这一目标的"正确方法"是什么?这感觉就像一个解决方法.

php magento

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

PHP 套接字 - 有人可以向我解释这些函数吗?

我正在尝试制作一个 php 套接字服务器,我发现了两个屏蔽和取消屏蔽文本消息(框架)的函数。我想我不清楚它是如何工作的。这是功能:

//encode message for transfer to client
function mask($text)
{ 
    $b1 = 0x80 | (0x1 & 0x0f);
    $length = strlen($text);

    if ($length <= 125)
        $header = pack('CC', $b1, $length);
    elseif ($length > 125 && $length < 65536)
        $header = pack('CCn', $b1, 126, $length);
    elseif ($length >= 65536)
        $header = pack('CCNN', $b1, 127, $length);

    return $header . $text;
}

//unmask incoming framed message
function unmask($text)
{ 
    $length = ord($text[1]) & 127;
    if ($length == 126) {
        $masks = substr($text, …
Run Code Online (Sandbox Code Playgroud)

php

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

从大多数派生类调用虚函数

我有一个类型为A的对象列表,它可能包含从A派生的任意数量的类的实例.我在列表的每个成员上调用一个函数,并希望调用最派生类的函数.但是,调用基类的功能.我怎样才能得到使用派生程度最高的类的情况?

以下代码说明了我的问题.代码输出"In a"但我希望它输出"In b".

#include <iostream>

class A {
public:
    virtual void func()
    {
        std::cout << "In A" << std::endl;
    }
};

class B : public A {
public:
    virtual void func()
    {
        std::cout << "In B" << std::endl;
    }
};

int main()
{
    A a = B();
    a.func();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++

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