小编Tho*_*ian的帖子

const,readonly和get in static class之间的区别是什么

我有个问题.最近我发现自己使用了3种不同的代码行,经过仔细检查后看起来和感觉都一样.

public static class constant
{
    public static readonly int val1 = 5;
    public const int val2 = 5;
    public static int val3 { get { return 5; } }
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,它们是否相同,是否应该使用另一个?如果是这样.什么时候?

作为视觉工作室中的一个额外问题,为什么它们在intellisense中的表现方式不同?

在此输入图像描述

c#

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

在Asp.Net Core的Razor页面中检查登录用户AuthorizePolicy

我正在寻找一个变种

@if (SignInManager.IsSignedIn(User) && User.IsInRole(Roles.Administrator))
{
    <div id="editArticle">
Run Code Online (Sandbox Code Playgroud)

但是不是在检查完政策之后检查角色,而是像在控制器中那样检查.

[Authorize(Policy = Policies.RequireAdmin)]
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc razor asp.net-core-mvc asp.net-identity-3

14
推荐指数
3
解决办法
7838
查看次数

用倾角计算重力

如何将倾角仪(俯仰,偏航和滚转)转换为系统中预期的重力[X,Y,Z]

处于某个俯仰角,俯仰角和俯仰角的静止系统应该在某个位置拉到地面[X*g,Y*g,Z*g],假设这是出于模拟目的.我想创建一个输入是Pitch,Yaw和Roll的函数,输出是一个Vector3(X,Y,Z)下降时刻.

意味着一个物体静止,它向后向下会输出类似于[0,-1,0]加速度计和a的东西[pitch,yaw,roll]->[0,-1,0],其中[0,-1,0]减去了[0,-1,0]结果[0,0,0].或者如果我们以1g的速度向左拉,我们有一个加速度计显示[1,-1,0]新的值[1,0,0].

系统背面[俯仰,偏航,滚动] - > [0,-1,0]功能是我所追求的

Vector3 OriToXYZ(float pitch, float yaw, float roll){
    Vector3 XYZ = Vector.Zero;
    //Simulate what the XYZ should be on a object in this orientation
    //oriented against gravity
    ...
    return XYZ;
}
Run Code Online (Sandbox Code Playgroud)

是的我知道,因为下面的解释显示我无法检测系统是否颠倒或不基于滚动仅作为滚动给出(-90到90)但这是一个不同的问题).

这就是方向的布局方式. 倾斜度

有关使用此信息的原因,内容和方式的更多信息,请继续阅读.

计划是使用测斜仪作为陀螺仪的替代方案,通过模拟/计算方向上的重力预期值(俯仰,偏航,滚动)来将重力分量移除到加速度计数据.

由于加速度计(XYZ)是重力(XYZ)和运动(XYZ)两个组件的组合,我假设gravity(XYZ)-calc_g(XYZ) = 0,允许我执行accelerometer(XYZ)- calc_g(XYZ) =movement(XYZ)

说明为什么我认为这是可能的.当我绘制手机的数值并将手机侧向移动时略微摆动,看起来像正弦/余弦运动的线条是倾斜的,其他线条是XYZ加速度计:

  • red =(Pitch&accell-X)
  • 绿色=(Yaw&accell-Y)
  • blue =(Roll&accell-Z)

加速度值乘以90,因为它的范围为(-2到2),因此它在图纸中的范围从-180到180,俯仰偏航和滚转范围如上面的指示所示.图像的中间是Y = 0,左边是X = 0(X …

c# physics accelerometer windows-phone-8

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

在C#中创建对象时,将在内存中创建多少个方法?

我对类和对象有一些小疑问.

在课堂上我有10到20种方法,(下面分享)

    public class tstCls
    {
       public void a1()
        { }
        void a2()
        { }
        void a3()
        { }
        void a4()
        { }
        void a5()
        { }
        void a6()
        { }
        void a7()
        { }
        void a8()
        { }
        void a9()
        { }
    }
Run Code Online (Sandbox Code Playgroud)

为上述类创建对象时.内存中会存储多少种方法?只有调用方法或所有方法.

 static void Main(string[] args)
    {
        tstCls objcls = new tstCls();
        objcls.a1();
    }
Run Code Online (Sandbox Code Playgroud)

你可以帮我解决上面的情况.

.net c# oop

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

ASP.NET Core更改AccessDenied路由

我在路由AccessDenied时遇到了一些麻烦,可能还有Login/Logout路径.该项目是一个剥离的默认项目,没有更多的魔力.因此存在一个AccountAccessDenied()方法的控制器.

我现在正在尝试的是(这是互联网商品提供的解决方案)

services.Configure<CookieAuthenticationOptions>(options =>
{
    options.LoginPath = new PathString("/");
    options.AccessDeniedPath = new PathString("/InactiveSponsor");
    options.LogoutPath = new PathString("/");
});
Run Code Online (Sandbox Code Playgroud)

但这绝对没有区别.那么任何想法?任何想法为什么不工作以及如何使其工作.

这是我的Startup.cs

public Startup(IHostingEnvironment env)
{
    var builder = new ConfigurationBuilder()
        .SetBasePath(env.ContentRootPath)
        .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
        .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
        .AddEnvironmentVariables();

    if (env.IsDevelopment())
    {
        // This will push telemetry data through Application Insights pipeline faster, allowing you to view results immediately.
        builder.AddApplicationInsightsSettings(developerMode: true);
    }
    Configuration = builder.Build();
}

public IConfigurationRoot Configuration { get; }

// This method gets …
Run Code Online (Sandbox Code Playgroud)

asp.net asp.net-mvc-routing asp.net-identity-3 asp.net-core

7
推荐指数
3
解决办法
7505
查看次数

修改LINQ输出无法分配AnonymousType

嗨,我有一个问题,我已经黑了几个小时,我一直在收到错误

属性或索引器'AnonymousType#1.XP'无法分配 - 它是只读的

这个问题发生在a.XP上

    foreach (var a in comments)
    {
        a.XP = score.getLevel(a.XP);
    }
Run Code Online (Sandbox Code Playgroud)

并且作为评论指出我从不说我想要做什么,我想用改进的值得分替换a.XP.getLevel(a.XP).

这是完整的代码

protected void GetComments()
{
    TimberManiacsDataContext db = new TimberManiacsDataContext();
    Score score = new Score();
    var comments = (from fComment in db.Comments
                    where fComment.PublishID == Convert.ToInt32(Request.QueryString["Article"])
                    orderby fComment.DateTime descending
                    select new
                    {
                        UserName = fComment.User.UserLogin.Username,
                        PostTime = fComment.DateTime,
                        UserImage = fComment.User.UserGeneralInfo.ProfilePicture,
                        Comment = fComment.Comment1,
                        UserID = fComment.UserID,
                        XP = fComment.User.CommunityScore
                    }).Take(10).ToList();

    foreach (var a in comments)
    {
        a.XP = score.getLevel(a.XP);
    }
    Commentlist.DataSource = comments; …
Run Code Online (Sandbox Code Playgroud)

.net c# linq

6
推荐指数
2
解决办法
7357
查看次数

Windows Phone摄像头通过UDP"非常"慢

我一直在做一个私人项目,在那里我想学习如何在Windows手机上编程,在某一点上我开始摆弄插座和相机,一个好主意想到了视频输入(愚蠢我甚至尝试).

但现在我在这里,我有一些很好的东西,它就像一个魅力,但Lumia 800不能足够快地通过for循环.它发送一个帧,每个让我们说7-8秒,我觉得很奇怪,它应该足够强大.感觉和看起来像在没有色情片的56k调制解调器上观看色情片.

我还意识到一帧是317000像素,每帧总共大约1MB我也发送xy坐标,所以我的每帧占用2.3MB,仍然以不同的方式解决这个问题以保持低位.所以我猜我需要做圆顶魔法才能使位置和像素值都达到可接受的大小.因为atm我会以一个可接受的速度获得它,它需要至少60MB/s来获得30fps之类的东西,但那是另一天的问题.

//How many pixels to send per burst (1000 seems to be the best)
    const int PixelPerSend = 1000;
    int bSize = 7 * PixelPerSend;
    //Comunication thread UDP feed   
    private void EthernetComUDP() //Runs in own thread
    {
        //Connect to Server
        clientUDP = new SocketClientUDP();
        int[] ImageContent = new int[(int)cam.PreviewResolution.Height *   (int)cam.PreviewResolution.Width];
        byte[] PacketContent = new byte[bSize];
        string Pixel,l;
        while (SendingData)
        {
            cam.GetPreviewBufferArgb32(ImageContent);
            int x = 1, y = 1, SenderCount = 0;
            //In dire need of a …
Run Code Online (Sandbox Code Playgroud)

c# udp asyncsocket windows-phone-7.1

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

具有 asp-controller 和 asp-action 属性的锚点不会呈现为链接

在此 Razor 语法中:

<a asp-controller="Home" asp-action="Index">Home</a>

@foreach (LinkNodeModel link in Model.ControlActions)
{
    link.LinkTree();
}
Run Code Online (Sandbox Code Playgroud)

“Home”链接呈现得很好,但手动呈现的<a>字符串不会变成有效的链接。

LinkTree()是这样实现的:

return $"<a asp-controller=\"{Controller}\" asp-action=\"{Action}\">{Name}</a>";
Run Code Online (Sandbox Code Playgroud)

当我使用 打印链接时@link.LinkTree(),输出包含一行,其中仅显示代码,但不链接。

我得到了@Html.Raw(link.LinkTree())链接,但它们不可点击,因为它们实际上将 asp-controller/asp-action 属性打印到 HTML,而不是生成 href。

是否可以动态生成和呈现这样的链接?如果是这样,怎么办?

c# asp.net-mvc razor asp.net-core-mvc

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

有条件包含然后包含

众所周知,EF-Core 中不存在延迟加载。所以这意味着我不得不事后才进行查询。所以既然要思考,那我不妨尝试一下好好做。

我有一个相当标准的更新查询,但我想,嘿,我并不总是需要包含HeaderImagePromoImageFK 对象。应该有办法实现这一点。但我无法找到一种方法来稍后执行包含。事实上,我想也许在我真正对这个对象进行工作之前就包括在内。这样我也许能够自动化一些渴望。

ArticleContent ac = _ctx.ArticleContents
    .Include(a=> a.Metadata)
    .Include(a=> a.HeaderImage)
    .Include(a=> a.PromoImage)
    .Single(a => a.Id == model.BaseID);

ac.Title = model.Title;
ac.Ingress = model.Ingress;
ac.Body = model.Body;
ac.Footer = model.Footer;

if (model.HeaderImage != null)
{
    ac.HeaderImage.FileURL = await StoreImage(model.HeaderImage, $"Header_{model.Title.Replace(" ", "_")}_{rand.Next()}");
}
if (model.PromoImage != null)
{
    ac.PromoImage.FileURL = await StoreImage(model.PromoImage, $"Promo_{model.Title.Replace(" ", "_")}_{rand.Next()}");
}

ac.Metadata.EditedById = uId;
ac.Metadata.LastChangedTimestamp = DateTime.Now;

await _ctx.SaveChangesAsync();
Run Code Online (Sandbox Code Playgroud)

额外的

需要明确的是,这是EF7 (Core),我在找到一个允许我按需添加包含内容的解决方案之后,希望在初始之后_ctx.ArticleContents.Include(a=> a.Metadata).Single(a => a.Id == model.BaseID).

c# linq-to-entities entity-framework entity-framework-core

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

为EF,AddDbContext或AddEntityFramework添加服务

有没有之间的差异services.AddDbContextservices.AddEntityFramework().AddDbContext?他们的展位看起来在core-1.0.0下有效。

选择A

services.AddDbContext<DbContext>(options => options.UseSqlServer(connection));
Run Code Online (Sandbox Code Playgroud)

选择B

services.AddEntityFramework()
    .AddDbContext<DbContext>(options =>
        options.UseSqlServer(connection));
Run Code Online (Sandbox Code Playgroud)

还注意到.AddSqlServer()看起来不见了。上次我在RC2上进行过一些核心工作时,我发现很多东西已经被清理/重命名/简化了,我想这很好。

entity-framework-core asp.net-core

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