小编Sam*_*ade的帖子

Xna内容管道扩展 - 在自定义处理器中加载其他内容

我目前正在尝试使用Xna Content Pipeline扩展.在该实验中,我正在尝试加载包含另一个需要加载的"内容项"的文件.例如:

public class CustomItem
{
    public string Name;
    public Texture2D Texture;
}
Run Code Online (Sandbox Code Playgroud)

现在,在我的内容处理器中,我可以创建一个新的'CustomItem'实例并初始化Name字段,因为它只是一个字符串.但是,我无法在内容编译期间加载纹理文件(注意:纹理只是一个示例,理想情况下我希望能够加载任何其他内容类型).

我正在寻找的是:

// ... start class ...

public override CustomItem Process(SomeInputFormat input, ContentProcessorContext context)
{
    return new CustomItem()
    {
        Name = input.ItemName,
        Texture = context.LoadAsset<Texture2D>(input.ItemTexturePath)   // I realise LoadAsset<T>() does not exist - it's an example of what would be ideal
    };
}

// ... end class ...
Run Code Online (Sandbox Code Playgroud)

有谁知道这是否真的有可能,如果有的话,怎么去呢?如果可能的话,我宁愿不去延迟加载其他内容项的路线,或者使用二进制读取器和编写器创建我自己的自定义内容加载.

c# xna content-pipeline

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

循环比for循环要快得多,然后当语句改变时,while循环更快.怎么了?

出于兴趣,我测试了for循环和while循环是否存在任何差异.是什么原因导致while循环在我的计算机(AMD Phenom II X6 1090T @ 3.20GHz)上比for循环长约2-2.5秒?他们不是在做同样的事情吗?你得到类似的结果吗?

此外,当我用x = null;循环语句替换循环语句时,while循环将明显更快.这里发生了什么?

当然,迭代次数非常多,但差异仍然非常显着?

static void Main(string[] args)
{
    String x;
    const Int64 FIVE_BN = 5000000000;
    Int64 i = 0;

    DateTime start = DateTime.Now;
    for (; FIVE_BN > i; i++)
        x = null; //Replace with only ; in both loops and the for loop is faster
    Console.Out.WriteLine(FIVE_BN.ToString() + " times (for): " + (DateTime.Now - start));

    i = 0;

    start = DateTime.Now;
    while(FIVE_BN > i++)
        x = null; //Replace with only …
Run Code Online (Sandbox Code Playgroud)

c# performance

4
推荐指数
2
解决办法
1964
查看次数

键入(变量)vs(Type)变量

可能重复:(
类型)值和类型(值)之间有什么区别?

我主要是一个C#开发人员,因此使用以下语法进行大量显式转换:(type)variable以with (int)100.0004d为例.因此,在用C++编写代码时,我经常使用相同的语法.然而,我看到(甚至使用)在同样的铸造是使用语法实现其他情况下的代码type(variable)int(100.0004)作为一个例子.

我很好奇这两种方法之间的区别是什么,以及使用一种方法是否有任何影响.

例:

double someDouble = 100.00456;

// Cast the double using the (type)variable syntax
int firstCastValue = (int)someDouble;

// Cast the double using the type(variable) syntax
int secondCastValue = int(someDouble);
Run Code Online (Sandbox Code Playgroud)

c++ casting type-conversion implicit-conversion

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

使用C#或C#内的本机C++性能

我想知道以下两个场景是否对本机C++代码具有相同的性能影响(如果有任何性能影响).

假设我有cpp_calc()一些正在做一些计算的函数,并用原生C++编写.还有,cs_show_gui_stuff()用C#编写.

现在,以下哪种情况会恶化本机c ++性能(如果有任何性能损失)?

  1. 创建一个.Net(C#)应用程序,它使用或将C++转换为COM DLL,在本机C++ dll 中运行cs_show_gui_stuff()和调用.cpp_calc()DllImport

  2. 创建一个在C++中实现的C++应用程序,cpp_calc()cs_show_guid_stuff()通过将C#代码放在.Net COM DLL中来运行.

谢谢 :-)

.net c# c++ native-code

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

在C++中测试空指针值

我不清楚我怎么能用C++做到这一点.在Objective-C中,我可以用这种方式检查对象

if (myValue != [NSNull null]) { … }
Run Code Online (Sandbox Code Playgroud)

myValue与null对象(由类方法返回)进行比较,因此这很有效,如果object有一个值,即使是nil,if语句也会返回true.

所以问题是如何正确测试空指针值,我这样做了

if (myValue != NULL)
{
    qDebug() << "It is not null";
}
Run Code Online (Sandbox Code Playgroud)

但它不起作用.

c++ null objective-c

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

如何为新用户设置配置文件数据

我有一个MVC3站点,我正在编写代码来注册用户.代码执行此操作:

MembershipCreateStatus createStatus;
Membership.CreateUser(model.UserName, model.Password, model.Email, null, null, true, null, out createStatus);
Run Code Online (Sandbox Code Playgroud)

它接下来要做的是:

HttpContext.Profile["FirstNAme"] = model.FirstName;
HttpContext.Profile["LastName"] = model.LastName;
Run Code Online (Sandbox Code Playgroud)

这是它失败的地方.我得到的错误是:

无法为匿名用户设置此属性.

我理解为什么; 这是因为没有用户登录或没有指定用户,所以当然我无法为用户设置配置文件.我正在从Pro ASP.NET MVC 3 Framework的第754页开始工作,这是我从中获取此代码的地方.我已经在web.config文件中设置了它.

<profile enabled="true" defaultProvider="AspNetSqlProfileProvider">
  <providers>
    <clear/>
    <add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/" />
  </providers>
  <properties>
    <add name="FirstName" type="String"/>
    <add name="LastName" type="String"/>
  </properties>
</profile>
Run Code Online (Sandbox Code Playgroud)

我的问题是如何设置我要注册的用户的名字和姓氏?

c# asp.net-membership asp.net-profiles asp.net-mvc-3

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

c#foreach循环偶数

foreach在C#中有以下循环:

foreach(var item in mod)
{
    int i;

    i = i + 1;
    if (i % 2 == 0)
    { 
        string y = "even number"; 
    }
}
Run Code Online (Sandbox Code Playgroud)

为什么我得到局部变量未分配的消息.我想在这里找到偶数.

c#

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

未在.net4中调用的托管C++静态构造函数

我最近将一个项目从.NET 3.5移到了.NET 4.我使用的是C#,托管C++和非托管C++.

在我的一个托管C++(互操作)中,我有一个静态构造函数:

public ref class StaticPool : public BaseStaticPools
{
public:
    static StaticPool()
    {                       
        InitializePools();
    }

    static Poolable^ Dequeue()
    {
        return (Poolable^)Dequeue(Poolable::typeid);
    }

private:
    static void InitializePools()
    {                       
        BaseStaticPools::CreatePool(Poolable::typeid);                      
    }
};
Run Code Online (Sandbox Code Playgroud)

在.NET 3.5中曾经Dequeue()第一次调用它会触发静态初始化,它会运行静态构造函数.一旦我转移到.NET 4.0,从未调用静态构造函数.

我知道.NET 4.0中的静态初始化已经发生了变化,但根据我读到的所有内容,它应该可以正常工作.

.net c# c++-cli

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

如何根据struct的某个字段对struct指针列表进行排序?

我有这个代码:

struct nod
{
    nod *vCap;
    int vCost;
    char vInfo;
}; 

list<nod*> vList;

for (int i = 9; i >= 0; i--) 
{
    nod *vTmp;
    vTmp->vCost=i;
    vTmp->vInfo='a';
    vList.push_back(vTmp);
}
Run Code Online (Sandbox Code Playgroud)

如何按vCost值对列表进行排序?

c++ visual-c++

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

c#对象引用未设置为对象的实例

如果表格中不存在某些内容,我正在努力解决问题.我告诉它,看看是否UserInfo包含信息user.

UserInfo Character = db.UserInfoes.SingleOrDefault(a => a.Username == user);
if (Character.Username == null || Character.Username.Length == 0)
{
    //do stuff
}
Run Code Online (Sandbox Code Playgroud)

但是我在if声明中得到了错误.

你调用的对象是空的.

c# if-statement asp.net-mvc-3

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