►
From YouTube: .NET Design Review: Nullable Annotations
Description
More APIs from System.Private.CorLib
A
A
D
A
The
first,
basically,
we
just
walk
the
API
top
to
bottom.
You
can
ignore
the
doof
effectively.
The
DIF
just
tells
you,
but
we
added
a
question
mark,
but
okay,
every
time
it
did
not.
You
don't
see
it.
If
everything
means
it's
now
non
nullable
right.
So
keep
that
in
mind.
Super
Bass,
you
have
to
review.
Everything
we
got
is
whether
that's
a
different.
E
E
A
A
E
E
A
F
A
F
G
G
E
E
E
H
E
F
I
haven't
been
to
all
these
reviews,
but
how
do
we
typically
determine
whether
the
question
was
added
I
mean?
Was
it
it's
at
all
manual
or
their
automated?
Oh,
that's
all.
E
G
A
I'm
not
mobile,
so,
but
so
we
basically
said
that
the
base
is
nullable,
because
people
actually
do
return
now
from
there,
mostly
by
accident,
but
they
do
so
if
you
actually
call
object
to
string,
you
probably
want
to
as
humans
now.
But
if
you
call
to
sterling
a
particular
derived
tribe,
which
the
compiler
usually
knows
because
you
get
T
is
generally
not
tied
to
the
object.
Okay
and
most
of
our
overrides.
E
A
D
A
E
A
G
Oh
okay,
so
the
the
virtual,
the
default
of
the
virtual
protected
virtual
assembly
assembly
load,
is
return
null,
so
any
derived
type
has
to
provide
a
behavior.
It
doesn't
do
it
similarly
load
context,
non-virtual
load
from
assembly
name
just
says:
runtime
go
load.
This
is
something
so
so
one
of
them
is
a
foofy
go
figure
out
what
you're
supposed
to
do
behavior
and
the
other
one.
Is
it
just
calls
the
same
way
that
load
in
that's
it
simply?
The
locum
is
simply
named
assembly
name
just
calls
assembly
down
low
to
some
winning
so.
A
E
H
A
E
G
G
G
A
1,
the
problem
of
yeah,
the
problem
of
these
guys
is,
you
cannot
really,
if
you,
if
you
had
cold
I,
give
Co
class
equals
now,
so
I
would
not
exception.
That
just
means
that
you
can
never
retrieve
instances
of
the
attribute,
that's
in
metadata
right,
all
right,
which
is
generally,
why
you
validation,
and
that
you
constructors,
is
largely
useless.
The
time.
E
A
E
G
E
E
It's
probably
acceptable,
like
just
knowing
inch
walk.
It's
probably
acceptable
to
pass
out
for
repeating
local,
that's
good.
E
E
L
I
G
G
E
A
M
A
G
G
M
A
Well,
the
question
of
the
attributes
is
always
so
the
problem
of
attributes
in
general
is
like
the
code,
never
runs
right,
so
you
for
the
especially
bad
for
things
that
are
good
with
metadata
or
the
compiler
reads
them,
but
it
doesn't
even
matter
whether
you're
parsing
now
or
not.
The
compiler
will
just
ignore
those
guys
right,
which
means
for
the
most
part,
if
not,
is
not
a
valid
stay,
you'll
never
get
an
exception,
but
it
also
never
works.
So
in
that
case,
you
should
mark
with
more
malleable.
A
E
E
G
E
E
G
A
G
G
A
C
E
A
D
G
M
E
Do
well
marshal
nominative
might
never
know,
call
it.
The
infidel
type
is
known,
but
I
don't
know
offhand
how
all
the
motion
improves,
because,
generally
speaking,
this
interface
is
implemented
by
a
meta
type
specified
in
some
metadata
somewhere,
which
basically
says
oh
we're.
Trying
to
pass
a
person
across
the
pin
goes
down
where
you
were
calm
down
or
let
me
tell
you
how
to
actually
talk
about
thing.
E
You're
you're,
looking
at
the
customer
chaleur
none
of
your
face,
I
custom
marshall,
a
that
Marshall
managed,
but
there
are
no
calls
yeah
and
the
implementation
is
like.
Everyone
doesn't
have
to
give
me
an
invitation
so
and
for
a
miracle
and
framework,
no
one
doesn't
null
check.
Oh
I'm,
looking
at
a
source,
donut
yeah.
E
A
C
A
G
E
D
E
E
L
G
G
C
E
E
G
M
E
That
so
essence,
looking
at
get
objects
for
native
variants,
so
the
ones
to
run
okay
yeah,
the
one
directly
beneath
before
the
cursor
is
right
now
returns
an
object,
a
potentially
nullable
I'm.
Sorry,
a
non
knowable
array
of
potentially
mobile
elements.
So
these
sounds
firing,
sorry
that
she
doesn't
thought
updates.
J
A
A
G
G
A
But
but
but
then,
but
then
I
actually
be
not
the
case,
but
I
mean
it
gets
similar
to
how
we
did
other
things.
Like
parents
already
said
well,
the
array
is
never
not
ever
might
be
empty,
but
your
way
is
never
know.
So
that's
why
I
think
these
two
to
me
know
consistent
if
the
singular
version
gave
the
multiple
versions
yeah
and
then
this
one
is
just
you
know
the
generic
version
of
this
guy.
So
it
depends
on
what
what
the
guarantees
are.
J
A
G
E
So
I'm
gonna
make
you
sad
here.
I
believe
get
object
for
I
unknown
and
get
unique
object
for
I
unknown
could,
in
certain
cases,
become
null,
however,
I'm
pretty
sure,
no
one
in
their
right
mind
as
I
began
they're
worth
a
get
unique
object
for
I
unknown.
It
takes
an
int
pointer
and
also
get
object
for
I.
Am
this
is
around
half
a
screen
about?
G
Null
comes
out,
it's
a
bug
or
that
if
someone
calls
this
API,
they
should
be
defensively
or
they
should
add
a
null
check
that
putting
the
question
mark
here
just
says
you
should
have
the
null
checker.
Thank
you.
That's
really
all
it
says.
If
there
are
cases
where
I
can
do
it
and
we
believe
that
that's
a
legitimate
case,
then
we
should
say
this
might
return
null
and
should
be
checking
it
money.
You.
E
E
E
J
F
G
G
A
G
G
G
A
You
know
general
Penner
has
to
be
alone
zero
and
the
ones
that
take
a
name
for
an
officer
I'm,
just
telling
you
what
to
code
us
yeah,
no
I,
know
but
everything
we
generally
said
like.
We
accept
zero
values
and
then,
if
you
don't
pass
zero
than
before,
if
you
lay
your
indexing,
this
is
really
good.
Yeah
I.
A
G
K
E
G
G
A
G
G
F
G
G
G
It's
this
kind
of
already
that's
fair
I'm,
just
like
we
do
handle
it.
The
marshal
does
handle
it.
So,
theoretically,
it
should
be
in
question
mark
on
both
the
constructor
hidden
property.
But
if
we
want
to
say
it's
interrupts
services,
we're
just
going
to
tell
you
that
don't
put
ball
here.
That's
why
I
mean.
A
D
H
G
J
L
G
A
H
G
G
A
M
Our
coffee,
I.
G
A
G
G
C
C
C
L
G
Nothing
else
you
should
be
able
to
say
belly
with
a
capital
D,
which
is
any
type
of
extend
system.
I,
delegate.
A
G
A
J
A
A
G
I
don't,
but
it
lets
you
lets
you
do
the
things
like
understand
that
the
two
drinking
that
was
going
to
make
sense,
whether
you
can
call
enum
get
strings
and
it's
not
going
to
throw
so
it
constrains
it.
So
that
you're
in
a
state
where
offering
instead
of
we're
like
enum,
don't
get
values
as
it
takes
a
an
unconstraint
e
and
then
throws
if
T's
not
an
enum
would
have
been
nicer
to
just
string.
D
D
That
is
the
namespace
right,
think
so
yeah.
Why
does
it
ever
been
only
a
ray.
A
A
A
A
K
D
H
M
M
M
M
M
G
G
A
G
G
G
A
A
G
D
G
Okay,
so
if
you've
instantiating
it
with
a
null
type
argument,
it
will
throw
and
then,
if
it's
not
a
null
type
argument,
then
it
will
no
more
use
assembly
qualified
name,
but
if
the
type
is
a
generic
type,
always
one
of
them
is
more.
No,
because
if,
if
the,
if
the
type
of
the
generic
type
then
assembly
qualified,
they
might
return
both
right,
you're.
A
G
Actually
banging
it
away,
so
there
I
think
of
their
cases
that
you've
instructed.
You
probably
can't
do
it
in
an
attribute
declaration,
which
is
probably
why
they
said
it's
not
null
cuz
I,
don't
think
in
an
attribute
declaration.
You
can
talk
about
a
very
generic
parameter,
but
if
you
created
one
of
these
at
runtime,
you
can
definitely
get
an
old
back
by
asking
in
a
method
in
generic
right.
Well,.
I
G
A
G
A
G
G
A
G
C
A
C
C
C
M
M
M
D
G
H
G
G
G
A
C
A
Chrome
extensions
yeah
those
make
sense
to
me,
but
passing
a
nominal
stack
frame.
C
G
F
G
If
methods
to
skip
is
the
only
time
it
will
populate,
that
array
is,
if
number
of
frames
to
populate
is
not
fair,
is
greater
than
zero
once
it's
not
zero,
it'll
be
great.
So
if
you,
if
you
ask
it
to
skip
the
entire
stack
frame,
then
you'll
get
back.
So
it
is
a.
It
is
an
unchecked
argument
or
an
unchecked
constructor
input
that
if
you
go
back.
G
C
G
G
A
A
G
G
G
G
D
A
G
G
A
A
A
All
right
so
I
think
these
are
all
the
assemblies
that
we
had
on
the
share.
At
least
we
looked
at
everything
but
concurrent
because
that
one
we
should
probably
look
review
of
Stephen.
It
did
contract.
We
did
the
back
with
its
neckties.
We
didn't
throw
up
servers
into
a
pervasive
in
his
runtime
and
loader,
so
we're
good
for
what
I
got
from
something.