ํ์ฌ ์ฌ์ฉ ์ค์ธ ChartFX์ ๋ฒ์ ์ ์
๊ทธ๋ ์ด๋ ํ๋ ์์
์ ์งํํ๊ณ ์์ต๋๋ค.
if(chartAll.AxisX.Labels[value].Equals(""))
{
......
}
์ด๋ฌํ ์ฝ๋๊ฐ ์๋๋ฐ ๋ฒ์ ์
๊ทธ๋ ์ด๋๋ฅผ ํ๊ณ ๋๋ ์ฌ๊ธฐ์์ NullReferenceException์ด ๋ฐ์ํ๋๋ผ๊ณ ์.
ํ์ธ์ ํด๋ณด๋ Labels์ ํ์์ด ICollection => IList<>๋ก ๋ณ๊ฒฝ์ด ๋์๋ค์.
์ฐ์ ์ฝ๋๋ ์๋์ ๊ฐ์ด ์์ ์ ํ๊ณ ๊ธฐ๋ฅ ํ
์คํธ๋ฅผ ์งํํ๊ณ ์๋๋ฐ
if(chartAll.AxisX.Labels[value] is null)
{
......
}
์กด์ฌํ์ง ์๋ ๊ฐ์ฒด์ ์ ๊ทผํ ๋ ICollection๊ณผ IList<T>์ ์ฐจ์ด๊ฐ ์๋์ง ๊ถ๊ธํฉ๋๋ค!
ํน์ Generic ๋๋ฌธ์ ๋ฐ์ํ๋ ๋ฌธ์ ์ธ์ง โฆ ๋ต๋ณ ๋ถํ๋๋ฆฝ๋๋ค. ๊ฐ์ฌํฉ๋๋ค.
1 Like
suwoo
2
IList<T> ๋ ICollection<T> ์์ ๋ฐ์, ์ข ๋ ๊ตฌ์ฒด์ ์ธ ์ธํฐํ์ด์ค์
๋๋ค .
๊ทธ๋์ ,IList<T>๋ฅผ ๊ตฌํํ๋ ํด๋์ค ๋ฐ ๊ทธ์ ์ธ์คํด์ค๋ ICollection<T>๋ก ๋ณํ์ด ๋์ง๋ง
๊ทธ ๋ฐ๋๋ ๋ณํ์ด ์คํจํด์ ์ค๋ฅ๋ฅผ ๋ฐ์ํ๊ฑฐ๋ null์ ๋ฆฌํด ํ ์๋ ์๊ฒ ์ง์.
2 Likes
chartAll.AxisX.Labels[value]. //...
๋ง์ฝ ์ ์ฝ๋์์ ์ปดํ์ผ ์๋ฌ๊ฐ ๋์ง ์์๋ค๋ฉด, Lables ๋ IList ์ด์ง, ICollection ์ผ๋ฆฌ๊ฐ ์์ต๋๋ค.
์๋ํ๋ฉด ์ธ๋ฑ์ [int index] ๋ ICollection ์ด ์๋, IList ์ ๋ฉค๋ฒ์ด๊ธฐ ๋๋ฌธ์
๋๋ค.
๋ง์ฝ, ICollection ์ด ๋ง๋ค๋ฉด, ์๋ ๋ฉค๋ฒ๋ฅผ ํธ์ถํ๊ธฐ ๋๋ฌธ์, ์ปดํ์ผ๋ฌ๋ ์ ์๋ฅผ ์ฐพ์ ์ ์๋ค๋ ์๋ฌ๋ฅผ ๋ณด์ฌ์ฃผ๊ณ ์ปดํ์ผ์ ํ์ง ์์ ๊ฒ์
๋๋ค.
Null ์๋ฌ๊ฐ ๋ฌ๋ค๋ฉด,
chartAll ์ด null ์ด๊ฑฐ๋,
AsisX๊ฐ null ์ด๊ฑฐ๋,
Labels ๊ฐ null ์ด๊ฑฐ๋,
Lebels[value] ๊ฐ null ์ด๊ฑฐ๋ ์
๋๋ค.
๋ง์ฝ ์๋์ ๊ฐ๋ ์กฐ๊ฑด๋ฌธ์ ์ํด null ์๋ฌ๊ฐ ์ฌ๋ผ์ก๋ค๋ฉด,
if(chartAll.AxisX.Labels[value] is not null)
Lebels[value] ๊ฐ null ์ด์ด์ ์๋ฌ๊ฐ ๋ ๊ฒ์
๋๋ค.
์ฐธ๊ณ ๋ก IEnumerable, ICollection, IList ์ ๊ด๊ณ๋ ์๋์ ๊ธ์ ์์ธํ ์๊ฐ๋์ด ์์ต๋๋ค.
When To Use IEnumerable, ICollection, IList And List - Claudio Bernasconi
5 Likes
dimohy
4
์ด๊ณณ ํธ์ง๊ธฐ์์ ๋ง์์ด์์ฃ ? ICollection\<int\> ์ด๋ ๊ฒ ํ์๋ฉด ๋ฉ๋๋ค.
5 Likes
ํโฆ ์ง๊ธ๊น์ง ์๋์ฒ๋ผ ์
๋ ฅํ๋๋ฐโฆ
<int>
4 Likes
์ฑ๊ณตํ์ต๋๋ค ๊ฐ์ฌํฉ๋๋ค
2 Likes
์ด์ ๋ฒ์ ์ ICollection ์ด๋ผ๊ณ ํ๋ Labels๋ ์ ํํ๋ ICollection์ ์์ํ๋ LabelCollection ํด๋์ค๋๋ผ๊ณ ์.
ChartFX์์ ๋ง๋ ์ ๊ณตํ๋ ํ์์ด๊ณ , ์ฌ๊ธฐ์ ์ธ๋ฑ์ [int index]๊ฐ ๋ฉค๋ฒ ๋ณ์๋ก ์ ์ธ๋์ด ์์์ต๋๋ค.
์ ๊ฐ ์ฒ์์ ์ค๋ช
์ ์ ๋ชปํ ๊ฒ ๊ฐ์๋ฐ ์ด์ผ๊ธฐํ์ ๋๋ก Labels[value] ๊ฐ null์ธ ์ํฉ์ด ๋ง์ต๋๋ค.
๋ค๋ง Labels๊ฐ LabelCollection ํ์์ผ ๋ Labels[value] = โโ ์ด์๋๋ฐ, Labels๊ฐ IList ํ์์ผ๋ก ๋ณ๊ฒฝ๋๊ณ Labels[value] = null ์ด ๋์ด์
์ด ์ด์ ๊ฐ ํน์ IList์ ICollection์ ํ์
์ฐจ์ด์ ๊ธฐ์ธํ๋์ง ์ฌ์ญ์ด ๋ณธ ๊ฒ์ด์์ต๋๋ค.
ํน์ ์ด๋ป๊ฒ ์๊ฐํ์๋์ง์โฆ?
2 Likes
dimohy
8
๊ทธ๊ฑด ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ข ๋ ์ ํํ ๊ฒ์ LabelCollection์ indexer ๊ตฌํ์ ์ดํด๋ณด๋ฉด ๋ ๋ฏ ํฉ๋๋ค.
3 Likes
๊ทธ๋ ๊ตฐ์ ๊ฐ์ฌํฉ๋๋ค! ๊ทธ๋ฐ๋ฐ LabelCollection์ indexer ๊ตฌํ์ dll๋ก ์ ๊ณต๋์ด์ JustDecompile ๋ก๋ ์ด๋ฆฌ์ง ์๋๊ตฐ์
ํน์ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ด ์์๊น์?
2 Likes
์ปฌ๋ ์
ํ์์ ๋ฌธ์ ๊ฐ์ง๋ ์์ ๋ณด์
๋๋ค.
์ธ๋ฑ์๋ ๊ฑฐ์ ๋๋ถ๋ถ getter์ด๊ณ , IList ์ ์ธ๋ฑ์ ๋ํ getter ์
๋๋ค.
์๋ฌ๊ฐ IndexOutOfRange ๊ฐ ์๋๊ธฐ์, ์ปฌ๋ ์
์๋ null ์ด ๋ถ๋ช
ํ ๋ค์ด ์์์ ํ์ ํ ์ ์์ต๋๋ค.
๋ฐ๋ผ์, ๋ฌธ์ ์ ์ฝ๋๋ null ๊ฐ์ get ํ ๊ฒ ๋ฟ์ด๋ผ ์ ์์ ์ธ ๋์์
๋๋ค.
LabelCollection ์ ์๋์ ๊ฐ์ ์ฝ๋๊ฐ ์จ์ด ์์ ์๋ ์๊ตฌ์.
if(label == null)
label = "";
๊ทธ๋์, null์ set ํ ์ฝ๋๋ฅผ ์ฐพ๋ ๊ฒ ๋ฌธ์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ผ ๊ฒ ๊ฐ์ต๋๋ค.
4 Likes
๊ฐ์ฌํฉ๋๋ค ํ์ธํด๋ณด๊ฒ ์ต๋๋ค !!
3 Likes