小编Lua*_*aan的帖子

屏幕分辨率与Screen.Bounds不匹配

我看到通过控制面板设置的分辨率和我的宽屏笔记本电脑的Screen.Bounds输出之间有一个有趣的区别.屏幕为15.5",通过控制面板设置的分辨率为1920x1080.但是当我运行这样的代码时.

Screen[] screens = Screen.AllScreens;
foreach (Screen scr in screens)
{
    Console.WriteLine("Width: " + scr.Bounds.Width + ", Height: " + scr.Bounds.Width);
}
Run Code Online (Sandbox Code Playgroud)

输出显示我的分辨率为1536x864.我做了一些环顾四周,我认为它可能与DPI问题有关,当我查看我的显示设置时,滑块(我在Windows 8.1上)位于中间,复选框指出"让我为我的所有显示选择一个缩放级别"未选中.我运行这个小代码来获取当前的DPI设置.

float dpiX, dpiY;
Graphics graphics = new System.Windows.Forms.Form().CreateGraphics();
Console.WriteLine("DPI: " + graphics.DpiX);
Run Code Online (Sandbox Code Playgroud)

返回的DPI是96.0,根据我的理解,这是100%DPI设置(因此没有放大或其他任何调用).对我来说似乎很奇怪的是,Screen返回的界限恰好是我实际分辨率的80%,这会让我认为我的DPI设置为100(或125%),但事实并非如此.我的笔记本电脑屏幕只有这个问题,因为我的辅助显示器的界限等于通过控制面板的分辨率.这是因为我的DPI设置未设置为使显示器彼此独立(选中该复选框)?对于一些背景知识,我正在编写一个工具,它可以获取当前屏幕并从reddit获取图片并将它们彼此独立地放到屏幕上,所以无论我有什么解决方案,它都必须正确地获得每个显示器的分辨率.

c# resolution dpi windows-8.1

10
推荐指数
2
解决办法
5302
查看次数

SmtpClient - 操作超时

我正在尝试使用 C# 创建一个小应用程序来发送电子邮件,但即使使用端口 587 (GMail) TLS 或 465 (GMail SSL) 我也无法让它工作。我不确定是什么导致了我的问题,我应该编辑我的 app.config 文件吗?这是我的代码:

try
{
  SmtpClient client = new SmtpClient("smtp.gmail.com", 465);
  client.EnableSsl = true;
  client.Timeout = 10000;
  client.DeliveryMethod = SmtpDeliveryMethod.Network;
  client.UseDefaultCredentials = false;
  client.Credentials = new NetworkCredential("myemailid", "mypwd");

  MailMessage msg = new MailMessage();
  msg.To.Add(txtTo.Text);
  msg.From = new MailAddress("myemailid");
  msg.Subject = txtSub.Text;
  msg.Body = txtMsg.Text;

  client.Send(msg);
  MessageBox.Show("sent");
}
catch (Exception ex) 
{
    MessageBox.Show(ex.Message);
}
Run Code Online (Sandbox Code Playgroud)

c# smtp

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

为什么在计算表达式时会得到错误的结果?

int[] a = {5, 6, 10}
int n = a.Max() + a.Sum() % 10;
Console.Write(n);
Run Code Online (Sandbox Code Playgroud)

该代码输出11,但我会期望为1,因为31%10 =1。有人可以解释为什么上面的代码给出不同的答案吗?

c#

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

使用OVER(PARTITION BY)而不是Group By

现在我在我的SQL查询中使用临时表,但我想使用Partition By函数.

我的临时表查询如下:

drop table #Temp;

create table #Temp
(
  NAME varchar(50),
  EMPID varchar(50),
  SS MONEY,
  PP MONEY
);

insert into #Temp
 select * From
 (  
  select
   p1.NAME,
   p1.EMPID,
   case when p1.AmtPayer = 'SELF' then sum(p1.Salary) else 0 end as S,
   case when p1.AmtPayer = 'MANAGER' then sum(p1.Salary) else 0 end as P
  from Candidate p1 
  group by p1.Name, p1.EMPID, p1.AmtPayer
 ) as P;

select 
 t.NAME,
 t.EMPID,
 sum(t.SS) as 'SELF PAID',
 sum(t.PP) as 'PARTY PAID' 
from #Temp t
group by …
Run Code Online (Sandbox Code Playgroud)

sql-server window-functions

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

.NET编译IL的次数是多少次

我正在读第二本书但它仍然不明显.

我的问题是:编译IL语言的次数:a)每次从开始运行应用程序的执行.b)一次,在第一次执行后.

.net il jit compilation

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

使用此代码时,在c#中索引越界

如果我有1到100位数,我应该得到输出

1--100 
2--99
 3--98 
.  
.. 
.. 
49---50 
Run Code Online (Sandbox Code Playgroud)

代码低于其给定索引的范围,数组不需要很多维度

static void Main(string[] args)
{
    //// A. 2D array of strings.
    string[][] a = new string[100][];

    int bound0 = a.GetUpperBound(0);
    int bound1 = a.GetUpperBound(1);
    for (int i = 0; i <= bound0; i++)
    {
        for (int x = 100; x <= bound1; x--)
        {
            string s1 = a[i][x];
            Console.WriteLine(s1);
        }
    }
    Console.WriteLine();
    Console.ReadKey();
}
Run Code Online (Sandbox Code Playgroud)

c#

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

为什么我不能Seq.take超过5个值?

在尝试理解Seq.unfold时,我一直在玩下面的F#,它产生一系列三角形数字......

let tri_seq = 
  1.0 
  |> Seq.unfold (fun x -> Some (0.5 * x * (x + 1.0), x + 1.0)) 
  |> Seq.map (fun n -> int n)
Run Code Online (Sandbox Code Playgroud)

这似乎工作正常,因为我可以做以下事情......

tri_seq |> Seq.nth 10
Run Code Online (Sandbox Code Playgroud)

......它显示了正确的数字,无论我传递给它的价值如何.

现在,我正在尝试打印序列中的第一个(比如说)十个值,而不是上面的代码只得到第n个.我试过以下......

tri_seq |> Seq.take 10 |> Seq.map (fun n -> printfn "%d" n)
Run Code Online (Sandbox Code Playgroud)

...但只打印前五个值.无论我使用什么来传递给Seq.take的值,我只得到最多五个结果,即使使用Seq.nth,我可以尽我所能.

有人能向我解释一下吗?为什么我不能超过第五个值?

f#

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

标签 统计

c# ×4

.net ×1

compilation ×1

dpi ×1

f# ×1

il ×1

jit ×1

resolution ×1

smtp ×1

sql-server ×1

window-functions ×1

windows-8.1 ×1