腾讯云
开发者社区
文档
建议反馈
控制台
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
返回腾讯云官网
walterlv - 吕毅的博客
Windows 10 应用开发 - UWP / WPF / .NET Core
专栏作者
举报
651
文章
819928
阅读量
44
订阅数
订阅专栏
申请加入专栏
全部文章(651)
其他(172)
https(90)
程序(85)
c#(83)
wpf(77)
windows(75)
协议(75)
编译(65)
网络安全(60)
系统(44)
编程算法(43)
博客(39)
.net(38)
进程(29)
http(27)
ide(26)
配置(26)
git(25)
入门(23)
调试(23)
打包(21)
html(20)
工具(20)
命令行(20)
异常(20)
msbuild(19)
对象(18)
解决方案(18)
nuget(17)
开发(17)
wix(16)
线程(16)
框架(15)
事件(15)
core(14)
字符串(14)
unity(13)
powershell(13)
插件(13)
渲染(12)
unity3d(12)
脚本(12)
api(11)
linux(11)
安全(11)
工作(11)
函数(11)
com(10)
system(10)
操作系统(10)
集合(10)
教程(10)
权限(10)
设计(10)
数据(10)
性能(10)
游戏(9)
roslyn(9)
ui(9)
编辑器(9)
变量(9)
官方文档(8)
javascript(8)
开源(8)
管理(8)
日志(8)
网站(7)
缓存(7)
迁移(7)
csproj(7)
高性能(7)
计算机(7)
快捷键(7)
连接(7)
内存(7)
推送(7)
原理(7)
node.js(6)
github(6)
directory(6)
exe(6)
效率(6)
虚拟现实(6)
语法(6)
终端(6)
php(5)
访问管理(5)
正则表达式(5)
dll(5)
file(5)
null(5)
summary(5)
target(5)
using(5)
var(5)
window(5)
产品(5)
服务(5)
继承(5)
开发者(5)
跨平台(5)
垃圾回收(5)
软件(5)
拖拽(5)
网络(5)
源码(5)
asp.net(4)
xml(4)
容器(4)
存储(4)
自动化(4)
面向对象编程(4)
tcp/ip(4)
markdown(4)
sdk(4)
code(4)
dispatcher(4)
microsoft(4)
public(4)
task(4)
测试(4)
磁盘(4)
接口(4)
模型(4)
搜索(4)
文件系统(4)
线程安全(4)
优化(4)
重定向(4)
重构(4)
ios(3)
bash(3)
搜索引擎(3)
SSL 证书(3)
shell(3)
单元测试(3)
app(3)
build(3)
cmd(3)
forms(3)
int(3)
project(3)
string(3)
遍历(3)
编译器(3)
并发(3)
布局(3)
代理(3)
后台(3)
客户端(3)
可视化(3)
浏览器(3)
内存泄漏(3)
同步(3)
压缩(3)
异步(3)
异常处理(3)
域名(3)
mac os(2)
xcode(2)
c++(2)
ruby(2)
go(2)
jquery(2)
json(2)
unix(2)
centos(2)
文件存储(2)
canvas(2)
automapper(2)
border(2)
chrome(2)
clr(2)
cpu(2)
data(2)
editor(2)
filter(2)
gc(2)
gdi(2)
hlsl(2)
invoke(2)
manifest(2)
mono(2)
path(2)
post(2)
private(2)
ref(2)
release(2)
runtime(2)
text(2)
uac(2)
url(2)
zip(2)
版本管理(2)
编程语言(2)
队列(2)
反射(2)
泛型(2)
服务器(2)
后端(2)
架构(2)
兼容性(2)
开发环境(2)
内核(2)
生命周期(2)
数学(2)
算法(2)
特效(2)
序列化(2)
最佳实践(2)
机器学习(1)
iphone(1)
python(1)
webview(1)
access(1)
ruby on rails(1)
svn(1)
analyzer(1)
windows server(1)
nginx(1)
bash 指令(1)
命令行工具(1)
域名注册(1)
腾讯云测试服务(1)
云推荐引擎(1)
express(1)
xslt & xpath(1)
serverless(1)
分布式(1)
gui(1)
jenkins(1)
微信(1)
accelerometer(1)
assembly(1)
audit(1)
auto(1)
behavior(1)
bmp(1)
boolean(1)
bug(1)
bundle(1)
button(1)
case(1)
command(1)
compare(1)
compatibility(1)
configuration(1)
copy(1)
crash(1)
debug(1)
delay(1)
desktop(1)
detection(1)
device(1)
dpi(1)
drawing(1)
dynamic(1)
element(1)
error(1)
exception(1)
expression(1)
fetch(1)
fixed(1)
generator(1)
get(1)
gitignore(1)
gpu(1)
grid(1)
guid(1)
hook(1)
imagemagick(1)
import(1)
io(1)
ipc(1)
itemscontrol(1)
key(1)
keyword(1)
launch(1)
layout(1)
location(1)
mac(1)
map(1)
markup(1)
maui(1)
monitor(1)
mutex(1)
nested(1)
nullable(1)
partial(1)
pid(1)
popup(1)
process(1)
reference(1)
refresh(1)
remoting(1)
rendering(1)
resharper(1)
return(1)
search(1)
self(1)
set(1)
shader(1)
sleep(1)
subclass(1)
syntax(1)
terminal(1)
thread(1)
timeout(1)
tools(1)
tortoisegit(1)
uwp(1)
vmware(1)
void(1)
vpn(1)
vps(1)
vsix(1)
workflow(1)
x86(1)
zsh(1)
备份(1)
笔记(1)
编程(1)
编码(1)
表格(1)
部署(1)
程序员(1)
登录(1)
递归(1)
多进程(1)
多线程(1)
二进制(1)
翻译(1)
基础(1)
镜像(1)
开发工具(1)
科技(1)
路由(1)
视频(1)
调试工具(1)
通信(1)
线程池(1)
响应式(1)
虚拟机(1)
异步编程(1)
硬件(1)
远程桌面(1)
源码分析(1)
指针(1)
作用域(1)
语义分析(1)
ICO(1)
调试器(1)
标签(1)
搜索文章
搜索
搜索
关闭
基于 Roslyn 同时为 Visual Studio 插件和 NuGet 包开发 .NET/C# 源代码分析器 Analyzer 和修改器 CodeFixProvider
c#
analyzer
nuget
插件
开发
Roslyn 是 .NET 平台下十分强大的编译器,其提供的 API 也非常丰富好用。本文将基于 Roslyn 开发一个 C# 代码分析器,你不止可以将分析器作为 Visual Studio 代码分析和重构插件发布,还可以作为 NuGet 包发布。不管哪一种,都可以让我们编写的 C# 代码分析器工作起来并真正起到代码建议和重构的作用。
walterlv
2023-10-23
320
0
.NET/C# 程序如何在控制台/终端中以字符表格的形式输出数据
c#
表格
程序
数据
终端
在一篇在控制台窗口中监听前台窗口的博客中,我在控制台里以表格的形式输出了每一个前台窗口的信息。在控制台里编写一个字符表格其实并不难,毕竟 ASCII 中就已经提供了制表符。不过要在合适的位置输出合适的制表符,要写一些打杂式的代码了;另外,如果还要考虑表格列的宽度自适应,再考虑中英文在控制台中的对齐,还要考虑文字超出单元格时是裁剪/省略/换行。当把所有这些麻烦加到一起之后,写一个这样的辅助类来顶替那些麻烦事儿还是很有必要的。
walterlv
2023-10-23
286
0
如何更精准地设置 C# / .NET Core 项目的输出路径?(包括添加和删除各种前后缀)
c#
core
编译
协议
源码
我们都知道可以通过在 Visual Studio 中设置输出路径(OutputPath)来更改项目输出文件所在的位置。对于 .NET Core 所使用的 Sdk 风格的 csproj 格式来说,你可能会发现实际生成路径中带了 netcoreapp3.0 或者 net472 这样的子文件夹。
walterlv
2023-10-23
765
0
C#/.NET 如何创建带有本机依赖的多框架多系统 NuGet 包
c#
nuget
程序
框架
系统
正常如果你想写一个 .NET 的 NuGet 包,直接打包就好了,你的引用程序集会出现在 NuGet 包内的 lib 文件夹内。然而,如果我们的 NuGet 包包含本机依赖的话怎么办呢?
walterlv
2023-10-23
415
0
使用 Roslyn 对 C# 代码进行语义分析
c#
roslyn
编译
语法
语义分析
Roslyn 是微软为 C# 设计的一套分析器,它具有很强的扩展性。以至于我们只需要编写很少量的代码便能够分析我们的源代码。之前我写过一些使用 Roslyn 进行语法分析的文章。使用语法分析,可以轻松为代码编写提供各种错误报告以及修改代码(见这里)。而使用语义分析,你可以像在运行时使用反射一样,在编译时访问源代码中的各种类型、属性、方法等,特别适合用来分析引用、生成代码等。当然,实际项目里面将两者结合起来可以做到更多的效果。
walterlv
2023-10-23
294
0
编写你的专属 MSBuild C# 代码生成器:在保存文件时自动实时生成你的代码
c#
msbuild
编译
博客
跨平台
我之前的博客中有介绍如何在项目中生成额外的代码,也有介绍制作一个生成代码的 NuGet 包。而本文是在此基础上更进一步,可以让生成代码变成实时的;更准确的说,是在保存文件时即生成代码,而无需完整编译一次项目。
walterlv
2023-10-22
295
0
C# 的事件,一般你不需要担心它的线程安全问题!
c#
system
变量
事件
线程安全
时不时会有小伙伴跟我提到在 C# 写事件 += -= 以及 Invoke 时可能遇到线程安全问题。然而实际上这些操作并不会有线程安全问题,所以我特别写一篇博客来说明一下,从原理层面说说为什么不会有线程安全问题。
walterlv
2023-10-22
247
0
.NET/C# 使用 SetWindowsHookEx 监听鼠标或键盘消息以及此方法的坑
c#
程序
工作
进程
线程
一般来说,大家在需要监听全局消息的时候会考虑 SetWindowsHookEx 这个 API。或者需要处理一些非自己编写的窗口的消息循环的时候,也会考虑使用它。
walterlv
2023-10-22
413
0
三种方法设置 .NET/C# 项目的编译顺序,而不影响项目之间的引用
c#
编译
兼容性
解决方案
框架
当 A 项目引用 B 项目,那么使用 Visual Studio 或者 MSBuild 编译 A 项目之前就会确保 B 项目已经编译完毕。通常我们指定这种引用是因为 A 项目确实在运行期间需要 B 项目生成的程序集。
walterlv
2023-10-22
360
0
C# 8.0 如何在项目中开启可空引用类型的支持
c#
变量
编译器
程序
异常
C# 8.0 引入了可为空引用类型和不可为空引用类型。由于这是语法级别的支持,所以比传统的契约式编程具有更强的约束力。更容易帮助我们消灭 null 异常。
walterlv
2023-10-22
214
0
Win32/C# 应用不依赖任何库使用纯 GDI+ 对窗口截图(BitBlt)
c#
data
gdi
var
内存
在 Windows 上有 GDI+ 来操作位图,不止能完成很多的位图操作,还提供了与 Win32 窗口的互操作,可以截到 Win32 窗口的图片。
walterlv
2023-10-22
395
0
Unity3D 入门:让 C# 脚本公开可在 Unity 编辑器中设置的属性
c#
unity
编辑器
脚本
入门
将一部分参数从 C# 脚本中抽离出来,可以让 C# 脚本在 Unity 项目中更通用,适用于更多游戏对象(gameObject)。
walterlv
2023-10-22
396
0
Unity3D 入门:为 Unity 的 C# 项目添加 dll 引用或安装 NuGet 包
c#
dll
nuget
unity3d
入门
因为 Visual Studio 有强大的包管理器插件,所以即便是不熟悉 NuGet 命令的小伙伴也能轻松安装和管理 NuGet 包。不过,对 Unity C# 项目来说,你并不能直接引用 dll,也不能直接使用自带的 NuGet 包管理器完成 NuGet 包安装。
walterlv
2023-10-22
1.2K
0
Unity3D 入门:使用 Visual Studio 开发 Unity C# 脚本,说说根目录的那些 sln 和 csproj 文件
c#
unity3d
脚本
开发
入门
本文介绍 Unity3D 项目根目录的 sln 和 csproj 文件,你将知道如何正确理解和使用它们。
walterlv
2023-10-22
639
0
C# 可空引用类型 Nullable 更强制的约束:将警告改为错误 WarningsAsErrors
c#
nullable
编译
博客
配置
于是 C# 8.0 带来的可空引用类型由于默认以警告的形式出现,所以实际上约束力非常弱。
walterlv
2023-10-22
264
0
Win32/C# 应用使用 GDI+ 对窗口截图(BitBlt)
c#
gdi
var
内存
数据
在 Windows 上有 GDI+ 来操作位图,不止能完成很多的位图操作,还提供了与 Win32 窗口的互操作,可以截到 Win32 窗口的图片。
walterlv
2023-10-22
434
0
Win32/C# 应用使用 PrintWindow 对窗口截图(PrintWindow)
c#
bmp
using
协议
原理
相比于 Windows 2000 引入到 GDI+ 中的 BitBlt 方法截取窗口图片,Windows XP 时也引入了 PrintWindow 方法来专门截取窗口,截取的原理也不同。
walterlv
2023-10-22
704
0
C# 8.0 可空引用类型中的各项警告/错误的含义和示例代码
c#
null
泛型
接口
配置
C# 8.0 引入了可为空引用类型和不可为空引用类型。当你需要给你或者团队更严格的要求时,可能需要定义这部分的警告和错误级别。
walterlv
2023-10-22
377
0
推荐 .NET/C# 开发者安装的几款代码分析插件或对应的代码分析 NuGet 包
c#
nuget
插件
开发者
配置
如果你使用的是旧版本的 Visual Studio,那么默认的代码分析规则集是“最小建议规则集”。基于这个,写出来的代码其实只能说是能跑通过而已。随着 Roslyn 的发布,带来了越来越多更强大的代码分析器,可以为编写高质量的代码带来更多的帮助。
walterlv
2023-10-22
442
0
C# 8.0 的可空引用类型,不止是加个问号哦!你还有很多种不同的可空玩法
c#
迁移
null
编译
程序
C# 8.0 引入了可空引用类型,你可以通过 ? 为字段、属性、方法参数、返回值等添加是否可为 null 的特性。
walterlv
2023-10-22
410
0
点击加载更多
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
立即发文
Python精品学习库
代码在线跑,知识轻松学
立即查看
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
立即体验
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
立即查看
领券
问题归档
专栏文章
快讯文章归档
关键词归档
开发者手册归档
开发者手册 Section 归档